Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails 3.0应用程序I';我在电子邮件中嵌入图像时遇到问题_Ruby On Rails_Ruby On Rails 3_Image_Email - Fatal编程技术网

Ruby on rails 在rails 3.0应用程序I';我在电子邮件中嵌入图像时遇到问题

Ruby on rails 在rails 3.0应用程序I';我在电子邮件中嵌入图像时遇到问题,ruby-on-rails,ruby-on-rails-3,image,email,Ruby On Rails,Ruby On Rails 3,Image,Email,我正在尝试在电子邮件中显示二维码图像。我曾尝试在SO应用类似问题的解决方案,但未能使任何变体发挥作用。我不想从网站上下载 在我的用户_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")

我正在尝试在电子邮件中显示二维码图像。我曾尝试在SO应用类似问题的解决方案,但未能使任何变体发挥作用。我不想从网站上下载

在我的用户_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
attachments.inline["qrcode"] = {
                                :data => File.read("#{Rails.root.to_s + '/public/images/qrcode.png'}"),
                                :mime_type => "image/png",
                                :encoding => "base64"
                              }
在我的电子邮件\u qrcode.html.erb中:

  <body>
    <p>Here is the QR Code:</p> 
    <p><img src="cid:qrcode.png"></p>
  </body>
<%= image_tag( attachments['qrcode'].url, :id => 'qrcode' ) %>
它也包含在附件中,但必须双击它才能打开它,这会破坏便利性

谢谢你的帮助


更新: 好的市场营销就是要消除一切障碍,让潜在客户更容易接受。二维码显示的次数越多,而无需查找并单击其他链接,结果就会越好。所以,说清楚点

  • 附件在那里。在一些电子邮件客户端和web邮件服务器中,它甚至会显示为电子邮件下方的附件。然而,许多(可能是大多数…不确定)电子邮件客户端和web邮件服务器将不会显示附件,除非您单击它们打开它们。。。再次点击(障碍物)
  • 此外,许多客户端和web邮件服务器将阻止图像的下载和显示,而无需单击链接以批准图像的显示。但是,这些客户机和服务器中的许多不会阻止嵌入电子邮件中的图像。换句话说,输入下载图像的链接会增加显示被阻止的可能性,需要点击(潜在客户的障碍)打开图像
  • 另一个更新:解决方案 用户_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
    
    attachments.inline["qrcode"] = {
                                    :data => File.read("#{Rails.root.to_s + '/public/images/qrcode.png'}"),
                                    :mime_type => "image/png",
                                    :encoding => "base64"
                                  }
    
    电子邮件_qrcode.html.erb:

      <body>
        <p>Here is the QR Code:</p> 
        <p><img src="cid:qrcode.png"></p>
      </body>
    
    <%= image_tag( attachments['qrcode'].url, :id => 'qrcode' ) %>
    
    “qrcode”)%%>
    
    在您的
    电子邮件\u qrcode
    方法中,尝试更改:

    附件。[“qrcode.png”]

    attachments.inline[“qrcode.png”]


    这会让你朝着正确的方向前进

    你确定你的电子邮件客户端没有阻止显示图像吗?如果您在电子邮件中有一个img标记,并且它作为附件包含在电子邮件中,那么它应该在那里。作为旁白,通常最好将图像放在可公开访问的地方,并通过完全限定的url
    img src显示在您的电子邮件中="http://example.com/path/to/image.png
    而不是作为附件,安迪。谢谢你的帮助+1因为你的评论会帮助一些人。我在更新中解释了我将二维码图像嵌入邮件正文的营销原则。是的,看到你的目标了。尝试将
    附件。[“qrcode.png”]
    更改为
    附件.inline[“qrcode.png”]
    在您的
    电子邮件\u qrcode
    方法中。+1让我快到了。有几个额外的doo-dads是需要的,但我发现他们是因为搜索了你建议的代码。将添加我在另一个更新中发现的内容。如果你将其作为答案发布,我将选择你的解决方案。