0

次の 2 つの異なる電子メールを送信しています。

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」受信者に送信された最初のメッセージとマージされています。両方のメール コンテンツを 1 つのメールにまとめます。アタッチメント ラインを削除すると、すべてが正常に戻ります。

どうすれば修正できますか?

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 は、添付ファイルを誰に送信するか、つまり最初の電子メールか、それとも他の電子メールか、またはその両方かについて混乱します。2 つのメールの間に添付ファイルを挿入し、結果を確認します。

    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 に答える