2

我不确定为什么我通过 ActionMailer 发送的带有附件的电子邮件没有显示附件,而是附件的内容只是显示/输出到电子邮件中。

class MyMailer < ActionMailer::Base
  default :from => "email@email.com"

  def test_email()
    attachments['testresult1.html'] = {
      :filename => 'testresult1.html',
      :body => File.read('C:\\testresult1.html')
    }

  mail(:to => 'email@email.com',
    :subject => 'Cool great message'
  )
  end
end

电子邮件的输出如下所示

Date: Tue, 17 Apr 2012 14:11:52 +1000
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8;
filename=testresult1.html
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=testresult1.html
filename: testresult1.html
Content-ID: <4f8ced883c0d9_1b1c30b580813e@PC-049.mail>

然后是 HTML 文件/附件的全部内容。

我希望将 HTML 文件附加到电子邮件中,因为它将附加到普通电子邮件中,并且我应该能够双击附件并在浏览器中打开它。

Email Client = Microsoft Outlook
Connection = SMTP
Rails = 3.2.1
ActionMailer = 3.2.1
Mail = 2.4.4
4

3 回答 3

2

您应该尝试向body#mail 添加密钥。

于 2012-04-17T05:57:24.823 回答
2

非常感谢菲利普 :)

我正在发送一个没有任何正文属性的附件,我面临以下两个问题:

  1. PDF 的名称总是以“noname”的形式出现
  2. 有时 PDF 已损坏

但是在将正文属性添加到邮件之后,它就可以工作了。

所以,正确的语法是:

attachments['mypdf.pdf'] = File.read('#{Rails.root.to_s}/public/test.pdf')
mail(:to => guru****@gmail.com, :from => guru****@gmail.com, :subject => 'Attachment Test Mail', :body => 'Regards, Guru')

于 2012-06-02T14:37:32.120 回答
1

我对“无名”有同样的问题并且已损坏。

我正在使用以下代码:

attachments['126539_statistics.pdf'] = File.read("app/assets/pdfs/126539_statistics.pdf")
mail(:to => email, :subject => subject, :body => message)

发送带有附件的邮件没有任何问题...

于 2012-10-10T10:27:15.423 回答