qdmail_receiver.phpからメール発信時刻情報を取得できるように修正! プロジェクトJ
公開日:
:
最終更新日:2012/09/03
プロジェクトJ
PHPのメール受信にqdmail_receiver.phpを利用しています
便利です
作者には感謝しております
で、今回のプロジェクトに必要な情報にメール発信時刻があります
残念ながら、qdmail_receiver.phpにはありません
う~ん
ないなら、追加してみましょう
こちらとなります
qdmail_receiver.phpのdecodeHeader()に追加しました
function decodeHeader(){ static $addr = array( 'to', 'cc', 'bcc', 'reply-to', 'from', ); if( !$this -> already_getMail ){ $this->getMail(); } // cutting if( 0 === preg_match( '/\r?\n\r?\n/is', trim( $this->all ), $matches, PREG_OFFSET_CAPTURE)){ $this->header_all = $this->all ; $this->body_all = null; }else{ $offset = $matches[0][1] ; $this->header_all = trim( substr( $this->all , 0 , $offset ) ) ; $this->body_all = trim( substr( $this->all , $offset + 1 ) ) ; } $this->header = $this->buildHeader( $this->header_all ); // address field action , force to array type foreach( $addr as $ad ){ if( !isset( $this->header[$ad]) ){ continue; } if(is_array($this->header[$ad])){ $addr_header = array_shift( $this->header[$ad] ); }else{ $addr_header = $this->header[$ad]; } $person = explode( ',' , $addr_header ); $this->header[$ad] = array(); foreach($person as $pers){ if( !empty( $pers ) ){ $this->header[$ad][] = $this->splitMime( $pers , true ); } } } // subject if( isset( $this->header['subject'] ) ){ $this->header['subject']= $this->splitMime( $this->header['subject'] , false ); } // date masekatsu if( isset( $this->header['date'] ) ){ $this->header['date']= $this->splitMime( $this->header['date'] , false ); } $this->already_header = true; }
で、これで、qdmail_receiver.phpは完了
あとは、呼び出し側をこれにあわせて修正です
といっても簡単なもの
$tmp .= "【".date("Y/m/d H:i:s",strtotime($recv->header(array('date','name'),'none')))."】";
$recv->header(array(‘date’,’name’))で、データを取得して、strtotime、dateで日付フォーマットに整形して完成です
あ~、簡単でした
ちゃくちゃくと、プロジェクトJは進みます
【サイト情報】
QdmailReceiverとは – QdmailReceiver Multibyte mail decoder & POP Client
PC
関連記事
-
FTPサーバに修正が即、反映!楽チン! Notepad++
プロジェクトJでFTP経由でプログラムのPHPをアップしています 今までは、EmEdito
-
プロジェクトJ 始動
ちょっと、思うところがあって、プロジェクトを開始 久々のWEBプログラムです まずは