Top / PEAR / Mail_Mime


 #setlinebreak(on)
 * PEAR :: Mail_Mime Mime変換、マルチパートメール作成[#g489f3f0]
 
 こちらへ移動
 http://dozo.matrix.jp/pear/mail/mime
 
 [[メール分解 PEAR :: Mail_MimeDecode>PEAR/Mail/Mail_MimeDecode]]
 #htmlinsert(googleAdsense.html)
 ** 概要 [#q8ecc279]
 #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)
 
 添付ファイル付きメールや、 
 HTMLメール作成も大変便利。
 
 日本語文字化け?
 [[日本語対応版>http://ns1.php.gr.jp/pipermail/php-users/2005-February/024849.html]]?
 別にそんなコトしなくても文字化けしませんよ。
 
 (ノ・・)ン。。。。。。(((●コロコロッ
 
 mime変換,mime分解を一手に担うのがこの[[PEAR :: Mail_Mime>http://pear.php.net/package/Mail_Mime/]]です。
 
 HTMLメールでやっかいなのが、
 画像のBase64変換とHTMLのcid変換。
 そのあたりもさっくりやってくれるので楽。
 
 [[PEAR :: Mail_Mime>http://pear.php.net/package/Mail_Mime]]のインストールはこんな具合。
  # pear install Mail_Mime
 
 
 ソースはこんな感じかな。
     <?php
     require_once('Mail.php');
     require_once('Mail/mime.php');
  
     $subject = "HTMLメールですよー。結構長めに設定してmime変換されているかチェック。";  // 題名
     $text    = "e-mailのテストだよ";  // テキスト本文
     $html = <<<HTML
     <html>
     <HEAD>
     <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-JP">
     </HEAD>
     <body>
     e-<font color="red">mail</font>のテストだよ<br />
     <img src="my_baby.gif" />
     </body>
     </html>
     HTML;
  
     // EUC-JP => JIS
     $original = mb_internal_encoding();
     $subject = mb_convert_encoding( $subject, "ISO-2022-JP", "EUC-JP" );
     mb_internal_encoding( "ISO-2022-JP" );
     $subject = mb_encode_mimeheader( $subject, "ISO-2022-JP" );
     mb_internal_encoding( $original );
  
     $text = mb_convert_encoding( $text, "ISO-2022-JP", "EUC-JP" );
  
     $file = './secret_file.xls'; // application/octet-stream
     $img  = './my_baby.gif'; // image/gif
     $crlf = "\n"; // 現在の改行コード
  
     // ヘッダー情報
     $hdrs = array(
                   'From'    => 'dozo@matrix.jp',
                   'Sender'    => 'dozo@rgr.jp',
                   'Subject' => $subject,
                   );
     // インスタンス生成
     $mime = & new Mail_mime($crlf);
  
     $mime->setTXTBody($text); // 
     $mime->setHTMLBody($html);
     $mime->addAttachment($file);
     $mime->addHTMLImage($img, 'image/gif');
  
     // 出力用パラメータ
     $build_param = array(
         "html_charset" => "EUC-JP",
         "text_charset" => "ISO-2022-JP",
         "head_charset" => "ISO-2022-JP",
     );
  
     $body = $mime->get( $build_param );
     $hdrs = $mime->headers($hdrs);
   
     $mail =& Mail::factory('mail');
     $mail->send('dozo@rgr.jp', $hdrs, $body);
     ?>
 
 ハマリどころ。
  getメソッドとheadersメソッドの順番を入れ替えると送信されなくなる。
 
 要望を書いてみたり。
  出力用パラメータはもっと前に設定したいなぁ。
 -g -- [[g]] &new{2006-02-01 19:13:57 (水)};
 -subject文字数多いと文字化けしました。$subject = mb_convert_encoding( $subject, "ISO-2022-JP", "EUC-JP" );を$subject = mb_convert_encoding( $subject,  "EUC-JP" );にしたら解決。 -- [[tetsuo]] &new{2006-05-05 17:13:15 (金)};
 -mb_encode_mimeheaderを使うのが標準になれば良いんですけどね。なんかちゃんと動かないんですよねぇ。。 -- [[dozo]] &new{2006-05-06 11:02:46 (土)};


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較