Ruby on rails 3 邮件中的Rails:attachments.inline[]
我要在电子邮件中显示公司标志时,电子邮件发送。我去了ActionMailer基地,有一个附件内联功能,支持邮件中的图像 我是这样实施的: 在用户_mailer.rb中Ruby on rails 3 邮件中的Rails:attachments.inline[],ruby-on-rails-3,actionmailer,Ruby On Rails 3,Actionmailer,我要在电子邮件中显示公司标志时,电子邮件发送。我去了ActionMailer基地,有一个附件内联功能,支持邮件中的图像 我是这样实施的: 在用户_mailer.rb中 def welcome_email(user) @user = user @url = "http://mealnut.com" attachments.inline['mealnut.png'] mail(:to => user.email, :subject => "Mealnut: New Order
def welcome_email(user)
@user = user
@url = "http://mealnut.com"
attachments.inline['mealnut.png']
mail(:to => user.email, :subject => "Mealnut: New Order #{order.id}")
end
在config/application.rb中:
config.action_mailer.default_url_options = { :host => "mealnut.com" }
在welcome_email.html.web中
<div class="logo">
<%= image_tag attachments['mealnut.png'].url, :alt => 'Mealnut', :class => 'photo' %>
</div>
出什么事了 附件和内联附件的不同之处在于,内联将通过base64插入附件,但您需要将文件附加到其中
attachments.inline['mealnut.png'] = File.read( Rails.root.join("app/some/path/","mealnut.png") )
这样您就可以在视图中引用它了
希望有帮助 嘿,实施了你建议的解决方案。但它给出了一个错误:未定义的方法“length”表示“hey cool获得了至少包含邮件的图像:-”)。但它不会在邮件中显示为标题。它显示为附件。内联附件将作为使用base64编码的单独mime类型添加。我不知道你说的标题是什么意思,但我想你指的是附件,而不是内联附件。你能把这个答案设置为适合你吗。我接受了。我的意思是,邮件中的图片,而不是附件。非常感谢:-)。电子邮件设计为不包含内联附件。当他们建立它时,它基本上是专为短信设计的。之后,他们又增加了更多的功能(变通方法),使附件成为可能,但只能通过附件实现。电子邮件客户端变得越来越智能,因此他们在解释“变通方法”方面相当出色,但这也是一个问题。每个人的做法都不同,所以在测试时必须非常小心。(网络邮件:gmail,live,yahoo;outlook,mac mail…=>特别是垃圾邮件的定义!!!
attachments.inline['mealnut.png'] = File.read( Rails.root.join("app/some/path/","mealnut.png") )