经过一番的努力找到下面的贴子把问题解决了,希望此贴对遇到如我一样的朋友有些帮助,
另外要感谢 FUNction朋友的在此过程中的帮助,他对exim4+php有些体验,附在文章最下方,我暂无测试,有时间的朋友可以测一下
http://hi.baidu.com/wangpeng1314/blog/item/91ece7099f0a74c83ac76375.html
debian下缺省安装的mta是exim4
那天netstat -nap | grep LISTEN一看
exim4监听着127.0.0.1的25端口
用惯了redhat系列的我想当然的认为:
嗯,不错,监听本地25端口,接收本地邮件然后根据需要往外(internet)发
这个跟redhat缺省的sendmail是一样的
但后来
发现原来定时备份的邮件收不到了
一看系统退回的信件:
Mailing to remote domains not supported
老是报这个错误
这才发现
原来debian的exim4缺省是不支持往internet上发信的
于是编辑下配置文件/etc/exim4/update-exim4.conf.conf
将
dc_eximconfig_configtype=’local’
改成
dc_eximconfig_configtype=’internet’
再重起exim4
/etc/init.d/exim4 stop;/etc/init.d/exim4 start
这时exim4还是监听着本地127.0.0.1的25口
但是已经支持往internet上发信了
附下:
測試環境:
Windows XP + Apache 2.0 + PHP 5.0
PHP相關設定(php.ini):
SMTP = %一架Debian Server%
修改部分:
Mail()的寫法,mail函式的第四個參數header裡
From:魏達特<waydoctor@gmail.com>
要改成
From:waydoctor@gmail.com
假如直接在該Debian Server上:
Debian(Sarge) Testing + Apache 2.0 + PHP 5.0 + exim4
PHP相關設定(php.ini):
sendmail_path = sendmail -t
說明:
sendmail_path預設會帶有參數 -t -i
-i會造成Exim持續等待輸入,而無法偵測文件傳送完畢,必須手動去掉此參數
Mail函式部分:
就目前測試,From依然可以寫成
From:魏達特<waydoctor@gmail.com>
的格式,只是中文會出現亂碼,目前仍無法克服
在此过程中参看的资源有下面几个