在rails 3.0应用程序中,我无法在电子邮件中嵌入图像

时间:2012-06-08 20:04:57

标签: ruby-on-rails ruby-on-rails-3 image email

我正在尝试将二维码图像显示在电子邮件中。我试图在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)

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

感谢您的帮助。


UPDATE:

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

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

    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' ) %>
    

1 个答案:

答案 0 :(得分:1)

email_qrcode方法中,尝试更改:

attachments.["qrcode.png"]

attachments.inline["qrcode.png"]

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