debbbbie Writings

深藏功与名

Follow me onGitHub

用 Rails 发送邮件(各平台兼容)

用 Rails 发送邮件(各平台兼容)

因为各个邮件服务商对安全的要求等原因的不一,导致对 CSS 的支持程度也不一样,但大部分的邮件服务商都支持 inline CSS , 这就意味着我们可以用这种方法来写出 CSS 兼容的邮件。

还有一种情况,很多邮件服务商不能够显示邮件中的外链图片,原因是防止窃取 cookie 等,这个时候我们需要用 inline attachment 的方式,把图片作为附件,邮件内容中的图片地址指向这个附件。

有很多 gem 已经实现了 inline CSS 这个功能,知名的包括 premailer-railsroadie

inline attachment 更容易实现, rails 3 已经原生支持:

# ActionMailer
def welcome
  attachments.inline['image.jpg'] = File.read('/path/to/image.jpg')
end
<!-- Mailer template -->
<p>Hello there, this is our image</p>

<%= image_tag attachments['image.jpg'].url %>