使用 Rails ActionMailer 在电子邮件中呈现 QR 码时出现问题
Trouble Rendering QR code in Email using Rails ActionMailer
我目前可以使用 ActionMailer 生成 QR 码,但我无法在电子邮件中实际发送该 QR 码。该元素正在正确发送,但图像已损坏并且仅显示 alt。我可以在我的 ActionMailer 预览中看到 QR 码,但由于某种原因,当电子邮件为 sent/received 时它没有通过。
我正在使用 barby 在我的 CompanyLeadRsvpTicketModel 中创建二维码。
这是我模型中的代码:
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
这是我认为的代码:
<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>
我找到另一个 similar to this one and ended up going with the google-qr gem utilizing the google charts api。
它真的很容易使用,而且效果很好!
在我的模型中:
def generate_qr(text)
require 'google-qr'
chart = GoogleQR.new(:data => "#{text}", :size => "500x500", :margin => 4, :error_correction => "L")
return chart.to_s end
在我看来:
<%=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 错误,并且看不到 QR 码。
我目前可以使用 ActionMailer 生成 QR 码,但我无法在电子邮件中实际发送该 QR 码。该元素正在正确发送,但图像已损坏并且仅显示 alt。我可以在我的 ActionMailer 预览中看到 QR 码,但由于某种原因,当电子邮件为 sent/received 时它没有通过。
我正在使用 barby 在我的 CompanyLeadRsvpTicketModel 中创建二维码。
这是我模型中的代码:
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
这是我认为的代码:
<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>
我找到另一个
它真的很容易使用,而且效果很好!
在我的模型中:
def generate_qr(text)
require 'google-qr'
chart = GoogleQR.new(:data => "#{text}", :size => "500x500", :margin => 4, :error_correction => "L")
return chart.to_s end
在我看来:
<%=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 错误,并且看不到 QR 码。