
利用するPEARパッケージ紹介 †
まず今回利用するPEARパッケージの紹介の前に,先程インストールしたPEARを使いやすいようにヘッダファイルを一つ用意することにしましょう. <?php // include_pathにローカルのPEARシステムを追加する define( "_SYS_ROOT_DIR_", dirname( __FILE__)."/"); $include_path[] = _SYS_ROOT_DIR_."share/pear/"; ini_set( 'include_path', implode( ":", $include_path)); ?> 筆者が用意したディレクトリ構成の場合,「common.inc.php」というファイル名で保存をすることにします. このファイルを予め読み込んでおくことで,あたかもシステムのPEARを扱ってるようにプログラミングをすることが可能になります. また,今後作成する共通部分もこのファイルに作成します. これから今回利用するPEARパッケージを簡単に紹介します. Net_POP3 †POP3サーバへアクセスをするためのPEARパッケージです. 利用出来るクラスはNet_POP3で,サーバへの接続・メール一覧・メール取得など一通りの処理が可能です. 現状POP3/SSLには対応していないようです. Net_POP3クラスの主なメソッド
Net_POP3クラスでの処理は大まかに書きの手順になります.
そしてNet_POP3は下記の手順でプログラミングします.
下記が簡単なメール一覧表示の行い方です. <?php
require_once 'common.inc.php';
require_once 'Net/POP3.php';
$apop = false; // APOPを利用する場合はtrueにします
$pop3 = new Net_POP3;
$pop3->connect( 'localhost', 110);
$pop3->login( 'popuser', 'poppass', $apop);
$mailNum = $pop3->numMsg() + 1; // メール番号が1で開始するため
for ( $i = 1; $i <= $mailNum; $i++) {
$headers = $pop3->getParsedHeaders( $i));
// ヘッダ処理表示処理など
}
$pop3->disconnect();
?>
Net_POP3はそのままでは日本語をうまく扱えないので,後でいくつかのユーティリティ関数を用意します. Mail †メールを送信するPEARパッケージです. 利用出来るクラスはMailになり,sendmailコマンド*1を利用した送信とPEAR:Net_SMTPパッケージを利用した送信処理をすることが可能になります.クラスMailで利用可能なメソッドは下記のようになります. Mailクラスの主なメソッド
上記のようにMailパッケージは非常に簡単な設計になっており,送信手順は
の二つだけです.その為送信しようとするメールは予め作成しておくことになります. 下記はsmtpドライバ(Net_SMTP)を用いたメール送信の例です. require_once 'common.inc.php';
require_once 'Mail.php';
$headers = array();
$headers[ 'Subject'] = 'This is test mail!!';
$headers[ 'From'] = 'fromuser@example.com';
$headers[ 'To'] = 'to@example.com';
$body = <<<EOD
Hi,
This mail test mail!!
EOD;
$recipients = $headers[ 'To'];
$params = array();
$params[ 'server'] = 'smtp@example.com';
$params[ 'port'] = 25;
$params[ 'auth'] = false;
$mailObject =& Mail::factory('smtp', $params);
$mailObject->send( $recipients, $headers, $body);
今回はsmtpドライバを用いたメール送信を利用しようと思います. Mail_mimePart †添付つきメールを作成するPEARパッケージです. 利用できるクラスはMail_mimePartで,通常のテキストのみのメッセージから添付ファイルがあるメール,HTMLメールなどを作成することが可能です. 今回はこのパッケージでメール作成を行います. Mail_mimePartの主なメソッド
Mail_mimeDecode †メールメッセージのデコード処理を行うPEARパッケージです. 利用出来るクラスはMail_mimeDecodeになり,添付ファイルがあるメールの解析を行うことが可能です. Mail_mimeDecodeクラスの主なメソッド
また,クラスの利用には2種類の方法があります.
下記がインスタンスをしない静的な呼び出しの簡単な使用法になります. Mail_mimeDecodeの使用例
require_once 'common.inc.php'; require_once 'Net/POP3.php'; require_once 'Mail/mimeDecode.php'; $pop3 = new Net_POP3; // 認証などを済ませる $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $params['input'] = $pop3->getMsg( $msg_id); $mail = Mail_mimeDecode::decode( $params); Mail_RFC822 †RFC822*2に基づいたメールアドレスを解析するパッケージです. 利用出来るクラスはMail_RFC822で,一般的に非常に困難なメールヘッダに記載されているコメント付きのメールアドレスの解析がいとも簡単に解析をすることが可能になります. Mail_RFC822クラスの主なメソッド
クラスMail_RFC822のメソッドはparseAddressList()メソッドがひとつだけになり,下記がMail_RFC822の簡単な使用法になります. Mail_RFC822の使用例
$to = "Tadashi Jokagi <jokagi@example.com>, webmaster of example.com <webmaster>"; |