Zend/Mail/Storage/Pop3クラスを使って、メールを受信してみた。
受信自体は、意外と簡単に受信できたが、fromアドレスを取るのに一工夫必要。
メーラーで、メールアドレスに名前を設定されている場合、
その名前とメールアドレスの両方が、”from”情報に設定されているため、
メールアドレスだけを抜き出す必要があります。
調べてみたところ、Pearのモジュールでありました。
Mail_RFC822::parseAddressList()
という関数です。
使い方は、以下です。
require_once('Zend/Mail/Storage/Pop3.php');
require_once('Mail/RFC822.php');
$config = array('host' => 'メールホスト名',
'user' => 'ユーザ名',
'password' => 'パスワード');
$mail = new Zend_Mail_Storage_Pop3($config);
foreach ($mail as $num => $message){
$tmp = Mail_RFC822::parseAddressList($message->from);
$mail_address = $tmp[0]->mailbox . '@' . $tmp[0]->host;
var_dump($mail_address);
}
私が使っているサーバ heteml なら、pearにパスが通してあるので、
ZendFrameworkさえ、自分で設置すれば、pearは requireするだけで使えました。
今日まで、初期費用無料キャンペーンをやってるので、
正月休みに、いろいろ実験してみようって方は、申し込んでみてはいかかでしょう。