Bytesmailer |
![]() |
BytesMailerは、PHP言語によるメール送信用クラスです。RFCに準拠し、複数ファイルの添付や、マルチバイトの文字エンコーディング(例 UTF-8 or ISO-2022-JP)に対応しています。もちろん、シングルバイトの文字エンコーディングも適切に取り扱います。
本クラスのライセンスは、GNU Lesser General Public Licenseです。
Soureforge.jpでの、プロジェクトページ (CVS はこちらで)
Soureforge.net でのプロジェクトページ
は、このようになります。
include_once('BytesMailer_DIR/include.php'); $bm = new bytesmailer; $bm->internalCharacterEncoding('UTF-8', true); $bm->addAddr('foo@bar.net', 'Foo Bar'); $bm->addAddr('mrx@bar.net', 'Mr. X', 'from'); $bm->setSubject('This is a test.'); $bm->addTextMessage('I send this mail with bytesmailer. So are you fine?'); $bm->send();
ここで internalCharacterEncoding() 関数が重要です。はじめのパラメータは文字エンコーディング名を、2番目はマルチバイト文字かどうかです。
アドレスは必要なだけ指定できます。
$bm->addAddr('foo1@bar.net', 'Foo1 Bar'); $bm->addAddr('foo2@bar.net', 'Foo2 Bar'); $bm->addAddr('foo3@bar.net', 'Foo3 Bar', 'cc'); $bm->addAddr('foo4@bar.net', '', 'cc'); $bm->addAddr('foo5@bar.net', '', 'bcc'); $bm->addAddr('mry@bar.net', 'Mr. Y', 'from'); $bm->addAddr('mrz@bar.net', 'Mr. Z', 'from');
メールアドレスしか分からない場合は、2番目のパラメータは空白””にします。
返信アドレス 'replyTo' も使えます。
$bm->addAddr('reply@bar.net', 'reply dept.', 'replyTo');
受信確認'confirmReadingTo'もできます。
$bm->addAddr('confirm@bar.net', 'confirm', 'confirmReadingTo');
アドレスグループを使うには、以下のようにします。
$group =& $bm->addGroup('strong group', 'to'); $group->addAddr('member@bar.net', 'member');
ファイルを添付するには、以下のようにします。
$bm->addAttachmentFromFile('logo.gif');
いくつでもファイルを添付できます。
読み込むファイル名と、メールで表示したい名称が異なる場合は、
$bm->addAttachmentFromFile('logo.gif', 'icon.gif');
ファイルからでなく、バイナリデータを与える場合は、
$bm->addAttachment($binary_data, 'image', 'gif', 'icon.gif');
メールでの文字エンコーディング
日本語をはじめとして、メール中での文字エンコーディングが内部エンコーディングと異なる言語があります。
その様な言語に対しては、mailCharacterEncoding()を使用します。
$bm = new bytesmailer; $bm->internalCharacterEncoding('EUC-JP', true); $bm->mailCharacterEncoding('ISO-2022-JP', true);
現在のところ文字エンコーディングの変換は、 EUC-JP から IS0-2022-JP, UTF-8からISO-2022-JPおよびEUC-JPからUTF-8に対応しています。mb_functionを使用すれば、他の文字エンコーディングにも対応します。include.php中の_BYTESMAILER_USE_MB_FUNCTION定数をtrueにしてください。>文字エンコーディングの変換ができない場合は、内部エンコーディングをそのまま使用します。
何らかの理由でPHP mail() 関数を使用したくない場合、SMTP または sendmailを直接使用できます。この機能はPHPmailerを元にしています。
$bm->setSendMethod('smtp', 'smtp.bar.net'); $bm->send();
または、
$bm->setSendMethod('sendmail', '/usr/sbin/sendmail'); $bm->send();
0.2 Beta [2003.06.25] bytesmailer.0.2.zip