2
  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 视图链接到消息?

4

2 回答 2

1

正如您在 guides.rubyonrails 中看到的,您可以将视图链接到您的邮件程序,就像将视图链接到控制器的操作一样。如果您的邮件程序名为 my_mailer,而您的邮件程序操作名为 simple_mail,则在 app/views/my_mailer/ 中创建一个视图并将其命名为“simple_mail.html.erb”。同样,您可以创建一个“simple_mail.text.erb”以确保如果收件人无法接收 HTML 电子邮件,他们会收到纯文本版本(请参阅下面的 action_mailer_basics.html)。

至于内联附件,之前就视图提出了一个不同的问题(请参阅此链接),斯卡尼回答了几个链接。查看此链接并在文本中搜索“inline”,您应该会找到您正在寻找的答案!

http://guides.rubyonrails.org/action_mailer_basics.html

api.rubyonrails.org/classes/ActionMailer/Base.html

于 2013-09-30T12:47:21.950 回答
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 %> 
于 2014-02-05T10:45:30.887 回答