0

我正在发送两封不同的电子邮件:

mail(:to => email1, :template_name => "mail1_template",
         :subject => "Mail 1").deliver!
mail(:to => email2, :template_name => "mail2_template",
         :subject => "Mail 2").deliver!

在我添加附件之前它工作正常:

attachments["file.pdf"] = File.read("file.pdf")
mail(:to => email1, :template_name => "mail1_template",
         :subject => "Mail 1").deliver!
mail(:to => email2, :template_name => "mail2_template",
         :subject => "Mail 2").deliver!

PDF 附件本身没有问题,但是由于某些非显而易见的原因,email2 收件人收到的邮件正在与发送给“email1”收件人的第一个邮件合并:“email2”收件人收到一封电子邮件中的两个电子邮件内容。一旦我删除附件线,一切都会恢复正常。

我将如何解决它?

4

1 回答 1

1

尝试转换邮件的含义,首先发送 email2,然后发送 email1 -

 attachments["file.pdf"] = File.read("file.pdf")
    mail(:to => email2, :template_name => "mail2_template",
             :subject => "Mail 2").deliver!

    mail(:to => email1, :template_name => "mail1_template",
             :subject => "Mail 1").deliver!

这样做的原因是让知道现在哪个电子邮件得到了两个合并的邮件。

调试也很有帮助。

假设它是您的开发环境,所以不要忘记在您的/config/environments/development.rb

  config.action_mailer.raise_delivery_errors = true

并检查日志development.log以跟踪错误的实际位置。

更新:

此外,您已发送上述 2 封邮件的附件。ruby 对您将向谁发送附件感到困惑,即第一封电子邮件或其他电子邮件或两者兼而有之。做一件事——在两封邮件之间放入附件,然后检查结果。

    mail(:to => email2, :template_name => "mail2_template",
             :subject => "Mail 2").deliver!

    attachments["file.pdf"] = File.read("file.pdf")

    mail(:to => email1, :template_name => "mail1_template",
             :subject => "Mail 1").deliver!

更新:

为了将附件发送到两封电子邮件:

    attachments["file.pdf"] = File.read("file.pdf")

    mail(:to => email2, :template_name => "mail2_template",
             :subject => "Mail 2").deliver!

    attachments["file.pdf"] = File.read("file.pdf")

    mail(:to => email1, :template_name => "mail1_template",
             :subject => "Mail 1").deliver!

希望它会帮助你。

于 2013-02-08T07:57:37.743 回答