バックエンドにSMTPを使用する場合の実装例は以下の通りです。
require_once 'Mail.php'; $param = array( host'=>'smtp.example.com', port'=>'25'); $mailobject = Mail::factory( 'smtp', $param ); $recipients = '[email protected]'; $headers = array( 'From'=>'[email protected]', 'To'=>$recipients, 'Subject'=>'Test' ); $body = 'Test Mail'; $mailobject->send( $recipients, $headers, $body );※SMTPを使用する場合、バックエンド固有のパラメータとして SMTPホスト名とポート番号が必要です。また、認証が必要な場合、認証用のパラメータがさらに必要です。
なお、日本語のメールを送信する場合、適切なエンコーディングを施さないと文字化けを起こすことがあります。
文字化けを回避するには、メールヘッダ(件名など)に日本語が含まれる場合は、mb_encode_mimeheader()を使用して Base64 形式で'ISO-2022-JP'にエンコードし、メール本文に日本語が含まれる場合は、mb_convert_encoding()を使用して'ISO-2022-JP'にエンコードする必要があります。
$recipients = '[email protected]'; $headers = array( 'From'=>'[email protected]', 'To'=>$recipients, 'Subject'=>mb_encode_mimeheader( 'テスト', 'ISO-2022-JP' ) ); $body = mb_convert_encoding( 'これはテストです。', 'ISO-2022-JP', 'auto' ); $mailobject->send( $recipients, $headers, $body );
受信メーラーによっては、上記のようなエンコーディングを施さなくても文字化けを起こさないこともあります。
あとでトラブルにならないよう、テストで送信したメールは複数のメーラーで受信して確認しておいたほうがよいでしょう。