Mail_Mimeの使い方[Pear::Mail_Mime]

PearにMail_Mimeと呼ばれるパッケージがあります。

MIMEとは、規格はRFC1521とRFC1522に文書化されています。Base64などの符号化により バイナリデータの転送を可能にしました。それに伴い、8ビットの日本語も送信可能になり 複数のデータをまとめて転送できるようになりました。

このMIME形式にあわせて変換してくれるクラスがPearのMail_Mimeです。Maile_Mimeには Mail_Mime、Mail_mimeDecode、Mail_mimePartクラスが含まれています。

Mail_Mime使用方法は、次のようになります。

<?php
require_once "Mail.php";
require_once "Mail/mime.php";

$subject = 'サブジェクト';
$subject = mb_convert_encoding($subject, 'EUC-JP', mb_detect_encoding($subject));
$subject = mb_encode_mimeheader($subject, 'ISO-2022-JP');

$text = "メッセージ\nです。\n";
$text = mb_convert_encoding($text, 'ISO-2022-JP', mb_detect_encoding($text));

$file = './attach_file.zip';

$crlf = "\n"; //Pear::Mailの時は、\n

$header = array(
  'From'    => 'root@example.com',
  'Subject' => $subject,
);

$objMime = & new Mail_mime($crlf);

$objMime->setTXTBody($text);
$objMime->addAttachment($file);

// 出力用パラメータ
$build_param = array(
   "text_charset" => "ISO-2022-JP",
   "head_charset" => "ISO-2022-JP",
);

$body = $mime->get($build_param);
$header = $mime->headers($header);

$mail_object =& Mail::factory('mail');
$mail_object->send('bnote@example.com', $header, $body);
?>