2

我正在尝试获取要在电子邮件中显示的 QR 码图像。我曾尝试在 SO 应用类似问题的解决方案,但无法使它们的任何变体起作用。我不想从网站上下载它。

在我的 user_mailer.rb 中:

  def email_qrcode(from_whom, to_addy)
    @from_whom = from_whom
    @to_addy = to_addy
    attachments["qrcode.png"] = File.read(Rails.root + "public/images/qrcode.png")
    mail( :to => to_addy, :from => @from_whom.email, :subject => "QR Code" )
  end

在我的 email_qrcode.html.erb 中:

  <body>
    <p>Here is the QR Code:</p> 
    <p><img src="cid:qrcode.png"></p>
  </body>

显示的电子邮件内容:

Here is the QR Code: (followed by the little blue question mark indicating no image)

它也作为附件包含在内,但必须双击它才能打开它,这会破坏便利因素。

谢谢你的帮助。


更新:

良好的营销是为了消除所有障碍,使潜在客户更容易。无需查找并单击另一个链接即可显示 QR 码的次数越多,结果就越好。所以,要明确...

  1. 附件在那里。在某些电子邮件客户端 Web 邮件服务器中,它甚至会显示为电子邮件下方的附件。但是,许多(也许大多数……不确定)电子邮件客户端和网络邮件服务器不会显示附件,除非您单击它们以打开它们……再次单击(障碍)。
  2. 此外,许多客户端和网络邮件服务器会阻止图像的下载和显示,而无需单击链接以批准图像的显示。但是,其中许多客户端和服务器不会阻止嵌入在电子邮件中的图像。换句话说,放入下载图像的链接会增加显示被阻止的可能性,需要点击(潜在客户的障碍)才能打开图像。

另一个更新:解决方案

user_mailer.rb:

attachments.inline["qrcode"] = {
                                :data => File.read("#{Rails.root.to_s + '/public/images/qrcode.png'}"),
                                :mime_type => "image/png",
                                :encoding => "base64"
                              }

email_qrcode.html.erb:

<%= image_tag( attachments['qrcode'].url, :id => 'qrcode' ) %>
4

1 回答 1

1

在您的email_qrcode方法中,尝试更改:

attachments.["qrcode.png"]

attachments.inline["qrcode.png"].

这应该让你朝着正确的方向前进。

于 2012-06-10T04:47:24.703 回答