こちらへ移動
http://dozo.matrix.jp/pear/mail/mime
添付ファイル付きメールや、
HTMLメール作成も大変便利。
日本語文字化け?
日本語対応版?
別にそんなコトしなくても文字化けしませんよ。
(ノ・・)ン。。。。。。(((●コロコロッ
mime変換,mime分解を一手に担うのがこのPEAR :: Mail_Mimeです。
HTMLメールでやっかいなのが、
画像のBase64変換とHTMLのcid変換。
そのあたりもさっくりやってくれるので楽。
PEAR :: 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メソッドの順番を入れ替えると送信されなくなる。
要望を書いてみたり。
出力用パラメータはもっと前に設定したいなぁ。