2012-04-12 9 views
1

プレーンテキスト部分とEメール、HTML部分と添付ファイル

 use Encode(); 
     use MIME::Entity(); 
     my $msg = MIME::Entity->build(
     From  => '"' . Encode::encode('MIME-Header', 'Any User') . '" <[email protected]>', 
     To  => '"' . Encode::encode('MIME-Header', 'Some User') . '" <[email protected]>', 
     Subject  => Encode::encode('MIME-Header', 'Multipart alternative with attachments'), 
     Type  => 'multipart/alternative', 
    ); 
     my $plain = $msg->attach(
     Type   => 'text/plain; charset=UTF-8', 
     Data   => [ "*Multipart alternative with attachments*\n\nHere comes the plain text." ], 
    ); 
     my $fancy = $msg->attach(Type => 'multipart/related'); 
     $fancy->attach(
     Type   => 'text/html; charset=UTF-8', 
     Data   => [ "<html>\n\t<body>\n\t\t<h1>Multipart alternative with attachments</h1>\n\t\t<p>Here comes the fancy text.</p>\n\t</body>\n</html>" ], 
    ); 
     $fancy->attach(
     Type   => 'text/plain; charset=UTF-8', 
     Disposition  => 'attachment', 
     Filename  => 'test.txt', 
     Data   => [ "*Multipart alternative with attachments*\n\nHere comes the attachment." ], 
    ); 

を、私は、次のMIMEのソースコードを取得しています:

 Content-Type: multipart/alternative; boundary="----------=_1334231022-8218-0" 
     Content-Transfer-Encoding: binary 
     MIME-Version: 1.0 
     X-Mailer: MIME-tools 5.502 (Entity 5.502) 
     From: "Any User" <[email protected]> 
     To: "Some User" <[email protected]> 
     Subject: Multipart alternative with attachments 

     This is a multi-part message in MIME format... 

     ------------=_1334231022-8218-0 
     Content-Type: text/plain; charset=UTF-8 
     Content-Disposition: inline 
     Content-Transfer-Encoding: binary 

     *Multipart alternative with attachments* 

     Here comes the plain text. 
     ------------=_1334231022-8218-0 
     Content-Type: multipart/related; boundary="----------=_1334231022-8218-1" 
     Content-Transfer-Encoding: binary 

     This is a multi-part message in MIME format... 

     ------------=_1334231022-8218-1 
     Content-Type: text/html; charset=UTF-8 
     Content-Disposition: inline 
     Content-Transfer-Encoding: binary 

     <html> 
       <body> 
         <h1>Multipart alternative with attachments</h1> 
         <p>Here comes the fancy text.</p> 
       </body> 
     </html> 
     ------------=_1334231022-8218-1 
     Content-Type: text/plain; charset=UTF-8; name="test.txt" 
     Content-Disposition: attachment; filename="test.txt" 
     Content-Transfer-Encoding: binary 

     *Multipart alternative with attachments* 

     Here comes the attachment. 
     ------------=_1334231022-8218-1-- 

     ------------=_1334231022-8218-0-- 

私はThe Bat以内にメールを表示すると、無地バージョンとHTMLバージョンが正しく表示されます。 Mozilla Thunderbird 11.0.1では、プレーンバージョンは表示されず、HTMLバージョンは縮小されました。

ロジックにエラーがありますか、またはThunderbirdがただ失敗しましたか?

答えて

3

$fancyは不要です。すべてを$msgに追加してください。

Content-Transfer-Encodingヘッダーがより良いbase64またはquoted-printableです。もっと簡単です。

Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: base64 

Content-Type: text/html; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 
+0

[RFC 1521](http://tools.ietf.org/html/rfc1521)は廃止されました。将来、IETF Webサイトを使用してRFCテキストを検索してください。上部には、関連するRFCが表示されています。 – daxim

関連する問題