从URL中添加图像作为Rails 3中的附件

时间:2012-04-11 02:14:35

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

我知道您可以使用

在Rails 3中添加图像作为电子邮件的附件
def email_image(email)
  attachments["img"] = File.read('/path to image')
  mail(:to => email)
end

但有没有办法从网址附加图片而不是本地保存的图片?我想附上一个用回形针保存在S3上的图像。有没有一种简单的方法可以做到这一点,还是我需要先下载图像?

2 个答案:

答案 0 :(得分:7)

你需要

require 'open-uri'

然后再做

attachments["filename"] = open(url-to-image).read

答案 1 :(得分:0)

如果您使用的是html,那么您只需插入图片代码即可。唯一的问题是,大多数电子邮件客户端都会阻止图像,直到用户“信任”您为止。

如果您希望更有可能显示图像,那么最好的办法就是下载并嵌入它。但是,这会增加下载图像然后将其发送到每个邮件客户端的开销。