[PHP-users 18441] (????)
北野 健次
kitano @ scram.ne.jp
2003年 10月 15日 (水) 04:41:25 JST
はじめまして。
北野と申します。
今、PHP4.3.3を使用してメールの自動受信のプログラムを書いているのです
が、
一部のアクションでエラーを出してしまいます。
エラーを出すときの条件として、メール送信者の名前に日本語を使用し、姓と名の
間に半角スペースが入っているときに、RFC822.phpの190行目でエラーと表示されて
正常終了しません。
名前に英語名記している場合、半角スペースではなく全角スペースの場合には、問題
なく動作します。
Congiure時のオプションは、下記です。
'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs'
'--with-pgsql=/usr/local/pgsql' '--enable-mbstring'
'--enable-mbstr-enc-trans' '--enable-trans-sid' '--with-imap'
'--with-kerberos'
環境は、RedHat9.0 & PHP4.3.3 &PostgreSQL &qmail です。
下記サンプルをHPより使用しています。
#!/usr/local/bin/php -q
<?php
require_once "Mail/mimeDecode.php";
require_once "Mail/RFC822.php";
class karaMail
{
function getaddress($input){
$params['decode_headers'] = true;
$params['input'] = $input;
$structure=Mail_mimeDecode::decode($params);
$from=$structure->headers['from'];
$structure = Mail_RFC822::parseAddressList($from,'',TRUE,TRUE);
if($structure[0]->mailbox)
{
$address=$structure[0]->mailbox.'@'.$structure[0]->host;
return $address;}
return 0;
}
}
// end of class karaMail
$fp=fopen("php://stdin", "r");
while(!feof($fp)){
$input.=fread($fp, 4096);
}
fclose($fp);
echo karaMail::getaddress($input);
?>
PHP-users メーリングリストの案内