3

私のプログラムは、ファイル(something.eml)として届く電子メールを処理しています。状況によっては、添付ファイルを修正してからファイルを再保存する必要があります。私はここの手順をコードの基礎として使用してきましたが、私がやりたいことを正確に実行しようとする提案はありません。以下のコードは、元の添付ファイルを正常に削除してから、新しい添付ファイルを追加しようとします。

@email.without_attachments!
@email.add_file(amended_version)

残念ながら、2つの場所で問題が発生します。まず、アタッチメントだけでなく、すべてのmimeパーツが削除されているようです。テキスト/プレーンセクションも削除されます。次に、修正した.emlファイルをリロードしてテストすると、ファイル内にあるにもかかわらず、添付ファイルが認識されなくなります。

現在のメソッドの元のファイルと修正されたファイルを含む要点を含めました。

これを行うためのより良い方法はありますか?おそらく、アタッチメントを削除して再度追加するのではなく、アタッチメントを直接置き換える方法はありますか?

4

1 に答える 1

3

メールのフォーマットについては、なぜこれが機能するのかを知るのに十分なことはわかりませんが、機能します。

without_attachmentsから興味のある行だけを抽出しました!メソッドとそれは今うまくいくようです。メッセージの添付されていない部分はそのまま保持され、メッセージは正常に再読み取りされます。コードは今読みます....

@email.parts.delete_if { |p| p.attachment? }
@email.add_file(amended_version)
于 2012-09-05T08:16:00.457 に答える