首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rails ActionMailer在电子邮件中呈现二维码时出现问题

使用Rails ActionMailer在电子邮件中呈现二维码时出现问题
EN

Stack Overflow用户
提问于 2017-12-28 06:34:26
回答 1查看 376关注 0票数 1

我目前可以使用ActionMailer生成二维码,但无法在电子邮件中实际发送该二维码。元素正在正常发送,但图像已损坏,只显示alt。我可以在我的ActionMailer预览中看到二维码,但由于某种原因,它在发送/接收电子邮件时无法通过。

我正在使用barby在我的CompanyLeadRsvpTicketModel中创建二维码。

以下是我的模型中的代码:

代码语言:javascript
复制
def generate_qr(text)

  require 'barby'
  require 'barby/barcode'
  require 'barby/barcode/qr_code'
  require 'barby/outputter/png_outputter'

  barcode = Barby::QrCode.new(text, level: :q, size: 5)
  base64_output = Base64.encode64(barcode.to_png({ xdim: 5 }))
  return "data:image/png;base64,#{base64_output}"

end

下面是我视图中的代码:

代码语言:javascript
复制
<h1>Hi <%= @company_lead_rsvp_ticket.company_lead[0].first_name%>! Here is your RSVP ticket for the <%=@event.title%>!</h1><h2>Please bring this ticket to check in for the event.</h2><%=image_tag("#{@company_lead_rsvp_ticket.generate_qr(@company_lead_rsvp_ticket.otp_secret_key)}", :alt => "qrcode")%><p><%= @company_lead_rsvp_ticket.confirmation %></p>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-30 03:09:00

我找到了另一个与此类似的question,并最终使用了使用google charts apigoogle-qr gem

它真的很容易使用,工作起来就像一个护身符!

在我的模型中:

代码语言:javascript
复制
def generate_qr(text)
require 'google-qr'
chart = GoogleQR.new(:data => "#{text}", :size => "500x500", :margin => 4, :error_correction => "L")
return chart.to_s end

在我看来:

代码语言:javascript
复制
<%=image_tag("#{@company_lead_rsvp_ticket.generate_qr(@company_lead_rsvp_ticket.otp_secret_key)}", :alt => "qrcode")%> <br/>

google-qr接受文本输入,该文本输入用于生成二维码并使用安全的URL托管二维码。您所要做的就是将google-qr生成的数据转换为字符串,这样就可以将其用作图像源。

最好的部分是,如果你试图在浏览器中直接转到这个URL,你会得到一个很大的400错误,并且你看不到二维码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47999411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档