Bytesmailer

BytesMailerは、PHP言語によるメール送信用クラスです。RFCに準拠し、複数ファイルの添付や、マルチバイトの文字エンコーディング(例 UTF-8 or ISO-2022-JP)に対応しています。もちろん、シングルバイトの文字エンコーディングも適切に取り扱います。

本クラスのライセンスは、GNU Lesser General Public Licenseです。

Soureforge.jpでの、プロジェクトページ (CVS はこちらで) SourceForge.jp

Soureforge.net でのプロジェクトページ SourceForge.net Logo

使用方法

単純な方法

は、このようになります。

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にしてください。>文字エンコーディングの変換ができない場合は、内部エンコーディングをそのまま使用します。

SMTP と Sendmail

何らかの理由で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

開発者

Haruki Setoyama

$Id: index.html,v 1.1 2003/06/26 14:00:43 haruki Exp $