mailを受信したときそのあて先でコマンドを実行しメール処理をすることができるこれをphpのシェルで実行する。
/etc/postfix/aliasesに以下のように指定
phptest: "|/var/lib/pgsql/comingout/php/test.php
以下のコマンドも実行
# newaliases
メール受信処理
メールの内容ははパイプで送られてくるのでそれをphpで読み込む
test.php
#! /usr/bin/php <?php
while(!feof(STDIN)) {
// $lndata = fread(STDIN, 4096);
$lndata = fgets(STDIN, 4096);
mb_internal_encoding("JIS");
$lndata = mb_convert_kana($lndata,'rn');
// $lndata = ereg_replace(".", ".", $lndata);
// echo $lndata;
// 送り元の取り出し
//addressが okada@abc-u.ac.jp の場合
if ( ereg("^From: (.*)@.*", $lndata, $reqs)){
$name = $reqs[1];
}
//addressが 岡田 <okada@abc.ac.jp>の場合
if ( ereg("^From: .*<(.*)@.*>", $lndata, $reqs)){
$name = $reqs[1];
}
// 日付の取り出し
if ( ereg("^Date: (.* \+.*)\n$", $lndata, $reqs)){
$date = $reqs[1];
}
// Toの取り出し
if ( ereg("^To: (.*)@.*$", $lndata, $reqs)){
$class = $reqs[1];
}
?>
''メール送信処理
function send_mail($name,$msg,$subject){
$subject = mb_convert_encoding($subject, "ISO-2022-JP", "EUC-JP");
$subject = mb_encode_mimeheader($subject, "ISO-2022-JP", "B");
$fp = popen("/usr/bin/nkf -m0 | /usr/sbin/sendmail -oi -t", "w");
fwrite($fp, "From: comingout@abc.ac.jp\n"); fwrite($fp, "Reply-To: okada@abc.ac.jp\n"); fwrite($fp, "To: $name@abc.ac.jp\n"); fwrite($fp, "Subject: " . $subject ."\n"); fwrite($fp, "Mime-Version: 1.0\n"); fwrite($fp, "Content-Type: text/plain; charset=ISO-2022-JP\n\n"); fwrite($fp, $msg . "\n"); pclose($fp);
}