def simple_mail(to, subject, body)
attachments.inline['Logo.png'] = File.read( Rails.root.join("public", "Logo.png"))
mail(:to => to, :subject => subject, :body => body)
end
我收到了邮件的附件,但它不是“内联”图片。如何附加内联,如何选择它的位置?
我看到的例子有他们邮件的观点..看起来我可能需要设置它们。如果是这样,我如何将Action Mailer视图链接到消息?
答案 0 :(得分:1)
正如您在guides.rubyonils中看到的那样,您可以将视图链接到邮件程序,就像将视图链接到控制器的操作一样。如果您的邮件程序名为my_mailer,并且您的邮件程序操作名为simple_mail,则在app / views / my_mailer /中创建一个视图,并将其命名为“simple_mail.html.erb”。同样,您可以创建“simple_mail.text.erb”以确保如果收件人无法接收HTML电子邮件,则会获得纯文本版本(请参阅下面的action_mailer_basics.html)。
至于内联附件,之前提出了一个关于观点的不同问题(参见this link),scaney回答了几个链接。查看this link并在文本中搜索“内联”,您应该找到所需的答案!
http://guides.rubyonrails.org/action_mailer_basics.html
api.rubyonrails.org/classes/ActionMailer/Base.html
答案 1 :(得分:0)
1)要设置邮件的动作邮件视图,您可以按如下方式执行:
在app / views / mailer_name /中创建一个与邮件程序操作同名的视图文件(在本例中为“simple_mail”)
或者,如果你想完全使用不同的视图,你也可以这样做:
def simple_mail(to, subject, body)
attachments.inline['Logo.png']=File.read( Rails.root.join("public", "Logo.png"))
mail(:to => to, :subject => subject, :body => body) do |format|
format.html { render :partial => "/path/to/partial"}
end
end
在上述情况下,部分内容将呈现为邮件正文。
2)要附加内嵌图片,您还需要在邮件程序操作视图文件中提及附件,如下所示:
<%= image_tag attachments['Logo.png'].url %>