PearにMailと呼ばれるパッケージがあります。
Mailクラスは、3種類の方法でメールを送信することができます。
mail()を使用する場合、php.iniの設定が必要になります。
ディレクティブ | デフォルト | 変更の可否 | 対象環境 |
---|---|---|---|
SMTP | localhost | PHP_INI_ALL | Windows環境 |
smtp_port | 25 | PHP_INI_ALL | Windows環境 |
sendmail_from | NULL | PHP_INI_ALL | Windows環境でPHPから送信される メールにおいて"From:"に使用する メールアドレスを指定します。 |
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM |
組み込み関数mail()を使用する場合、次のようにしてメールの送信ができるかを確認します。
<?php mail("bnote@example.com", "My Subject", "Message\nMessage\nMessage"); ?>
ここでは、TO、Subject、本文を指定しています。正しく設定されていればメールが送信されます。
ただし、このままでは日本語は送信できません。Subject等はJIS+Base64などでエンコードする必 要があります。
Mailクラスは、factory関数でメールクラスのインスタンスを取得します。このfactoryの引数によっ て組み込み関数かSMTP、SendMailの使用を切り替えます。
factoryの第一引数にmailと指定すると組み込み関数、smtpとすると任意のSMTPサーバ、 sendmailとするとSendMailを使用します。
組み込み関数と同様このままでは日本語が通らないので注意してください。
<?php require_once "Mail.php"; $recipients = 'bnote@example.com'; $headers['From'] = 'root@example.com'; $headers['To'] = 'bnote@example.com'; $headers['Subject'] = 'My Subject'; $body = "Message\nMessage\nMessage\n"; $objMail =& Mail::factory('mail'); $result = $objMail->send($recipients, $headers, $body); if (PEAR::isError($result)) { die($result->getMessage()); } ?>
Copyright 1997-2010 BBB All rights reserved.