バックエンドにSMTPを使用する場合の実装例は以下の通りです。
require_once 'Mail.php';
$param = array( host'=>'smtp.example.com', port'=>'25');
$mailobject = Mail::factory( 'smtp', $param );
$recipients = 'to@example.com';
$headers = array(
'From'=>'from@example.com',
'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 = 'to@example.com';
$headers = array(
'From'=>'from@example.com',
'To'=>$recipients,
'Subject'=>mb_encode_mimeheader( 'テスト', 'ISO-2022-JP' )
);
$body = mb_convert_encoding( 'これはテストです。', 'ISO-2022-JP', 'auto' );
$mailobject->send( $recipients, $headers, $body );
受信メーラーによっては、上記のようなエンコーディングを施さなくても文字化けを起こさないこともあります。
あとでトラブルにならないよう、テストで送信したメールは複数のメーラーで受信して確認しておいたほうがよいでしょう。