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
関連記事
-
-
プロジェクトJ 始動
ちょっと、思うところがあって、プロジェクトを開始 久々のWEBプログラムです まずは
-
-
FTPサーバに修正が即、反映!楽チン! Notepad++
プロジェクトJでFTP経由でプログラムのPHPをアップしています 今までは、EmEdito
