[PHP-users 32983] メール転送をphpに転送

miyuki sakamoto sakamoto.miyuki @ sea.plala.or.jp
2007年 12月 7日 (金) 17:41:42 JST


こんにちは。
いつも、参考にさせて頂いています。

もし、経験のあるかたご教授願いたいのですが
サーバー側の設定で受信メールをPHPのプログラムに転送することが出来ます。

そこで、空メールシステムを構築したく色々と試行錯誤をしておりますが
なかなか成功に至りません。
環境は下記のようになっています。

OS Linux
Apache 2.0.52
PHP4.3.9 ( セキュリティパッチ適用済 ) CGI版
sendmail

メール転送する時のパスはこのようにパイプでプログラムに渡しています。
| /home/**ID***/ **ドメイン****/public_html/***.php

PHPがCGI版なので、PHPファイル1行目に
#!/usr/bin/php
を付けても外してもダメでした。

***.php ファイル内のスクリプト
PEARを利用しメールヘッダーからアドレスを読み取っています。
phpinfoでinclude_pathは
.:/usr/share/pear
となっています。

よろしくお願いします。

<?php
require_once ("Mail/mimeDecode.php");
f(($stdin=fopen("php://stdin","r"))==true){
	while(!feof($stdin)){
	$str.=fread($stdin,4096);
	}
	fclose($stdin);

	$decoder = new Mail_mimeDecode($str);
	$params['include_bodies'] = false;
	$params['decode_bodies'] = false;
	$params['decode_headers'] = true;
	$structure =$decoder->decode($params);

	$item['subject']
=mb_convert_encoding(mb_decode_mimeheader($structure->headers['subject']),mb
_internal_encoding(),"auto");
	$item['to']
=mb_convert_encoding(mb_decode_mimeheader($structure->headers['from']),mb_in
ternal_encoding(),"auto");
	$item['from']
=mb_convert_encoding(mb_decode_mimeheader($structure->headers['to']),mb_inte
rnal_encoding(),"auto");

}
$to = $item['to'];
$subject = "ご登録有り難う";
$body ="ご登録有り難う。本文" ;
$from = $item['from'];
sendmail($to, $subject, $body, $from);
?>



PHP-users メーリングリストの案内