メールの受信(Zend_Mail)

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するだけで使えました。

今日まで、初期費用無料キャンペーンをやってるので、
正月休みに、いろいろ実験してみようって方は、申し込んでみてはいかかでしょう。