PHPで配信エラーメールの受信

| コメント(0)
メール一斉配信をしたときに届かなかったエラーメールだけを
受信できないかと思い作ってみました。

PEARのNet_POP3を使うとメールサーバーに
簡単にアクセスできるのでまずはそちらでメールの一覧を受信。

配信されなかったメールヘッダーの[X-Failed-Recipients]には
メールアドレスが入っているのでそれを取り出す。

後は日付順に並べれば配信エラーの一覧表ができる。

deleteMsg()メソッドを使うとメールの削除もできるので
古いメールはこれで自動的に削除していくといいかもしれない。


説明だけだと簡単なのだが、なかなかうまくいかずこれは意外と難問だった。

参考にしたサイトはこちら
PEAR::Net_POP3を使ってPOP3サーバにアクセスしよう - PHP TIPS:ITpro

<?php
require_once('Net/POP3.php');

$account = array(
  'host' => 'ホスト名',
  'port' => '110',
  'username' => 'ユーザ名',
  'password' => 'パスワード',
);
$pop3 =& new Net_POP3();
$pop3->connect($account['host'], $account['port']);
$pop3->login($account['username'], $account['password']);
   
    $mail_list = $pop3->getListing();
   
    $i = 0;
    foreach($mail_list as $key => $val) {
              
        $header_list = $pop3->getParsedHeaders($val["msg_id"]);
        $errdate = $header_list["Date"];
        $errmail = $header_list["X-Failed-Recipients"];

        if($errmail != "") {
            $errdata[$i]["errdate"] = $errdate;
            $errdata[$i]["errmail"] = $errmail;
            $i ++;
        }//end if
    }//end foreach
   
    $pop3->disconnect();
   
    $smarty->assign("errdata", $errdata);       
    $smarty->display("index.html");
?>

コメントする

ウェブページ

★過去に製作したウェブサイト(一部紹介)
イビキノン
いびきでよく眠れない方のサプリ
日本トレーラーハウス協会
トレーラーハウスの協会(JTHA)
トレーラーハウスデベロップメント
トレーラーハウスの製造・販売 シュミレーションゴルフのレンタル スクリーンゴルフのレンタル
健楽ショップ 【ボイスリッチEX】
声が出にくい症状の方に朗報
早稲田大学 スキー部
2007年 インカレ総合優勝!
NPO体験学習支援センター
ブナの植林100年計画実行中
AJC油汚染研究所
油ゲル化剤オイルフェンスの販売
ジャズシンガー 奥土居美可
NYで絶賛されたジャズボーカル