debian下不能发邮件到外网的问题

最近工作关系有用到debian版本的linux,安装后配合PHP发信,居然不成功,超郁闷,之前一直用freebsd 安装上可直接用php发邮件,最后查一下原因发现debian下面默认的邮件系统非sendmail 而是exim4,
经过一番的努力找到下面的贴子把问题解决了,希望此贴对遇到如我一样的朋友有些帮助,
另外要感谢 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

老是报这个错误
这才发现
原来debianexim4缺省是不支持往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:魏達特<[email protected]>
要改成
From:[email protected]



假如直接在該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:魏達特<[email protected]>
的格式,只是中文會出現亂碼,目前仍無法克服


在此过程中参看的资源有下面几个

debian中打开exim4的发邮件功能


debian下用exim4发送邮件


mail 和exim4名命令

debian下用exim4发送邮件(未测试)




你可能感兴趣的:(apache,PHP,Debian,redhat,FreeBSD,internet)