imapの続き

昨日のコメント欄でobacheさんから貰った情報を元にメールのリストアップをしてみる。

	$count = imap_num_msg($uid);
	$headers = imap_fetch_overview($uid,sprintf("1:%d",$count));

何この適当さ。
とりあえずこれでOKぽい。
で、これから本体だ。

いらんとこから飛んで来たメールをフィルタしよう。

つーことで正規表現で取り出そうとしたら

メールアドレスに一致する正規表現は「ありません」。 $mail_address =~ /[a-zA-Z0-9_-]+\@[a-zA-Z0-9_-]+\.\w+/; じゃ駄目なの?という方もいらっしゃるかもしれませんが、 以下のアドレスを見てください。これらは実在する(もう削 除しましたが)アドレスです。 canada(@home)@tt.rim.or.jp "me@home"@digital-canvas.com Tom&Jerry/$100.00@digital-canvas.com canada@[192.168.0.1]

('A`)
面倒なのでfromヘッダとメールアドレスをイコールで聞いちゃえ。
どうせAUのメールヘッダにアドレス以外入ってコネーし(開き直り

ってことで

	$count = imap_num_msg($uid);
	if ($count==0){
		echo "no mail";
		return ;
	}

	$headers = imap_fetch_overview($uid, sprintf("1:%d", $count));
	foreach($headers as  $mail){
		// pickup only registerd	
		if ($mail->from==SOURCE_MAIL_ADDRESS){
			echo "こっちは処理対象";
		}else{
			echo "こっちは削除対象";
			
		}
	}

適当万歳。

処理対象のメールをどない処理すっか

一応TODO

  • subjectの「[(.*)]」の($1)部分をカテゴリに登録
  • カテゴリ以外のsubjectはエントリの表題に登録
  • 本文はエントリの本文として登録
  • 添付されてる画像はシステム時刻をキーにMD5化した名前で保存
  • 添付されてる画像はexifを取り出して以下を登録
    • 撮影日
    • GPS座標

こんな感じで。