在win32的xampp下使用gmail的smtp模拟sendmail发邮件

xampp是一个优秀的服务器套件,支持包括win32在内的多个平台,使你可以轻松搭建一个php+mysql的环境出来。

最近我也安装了一个,免得改一点点代码都要上传到服务器上调试。
安装就非常简单,都是一路next的,不用重新启动就可以了。

xampp启动之后,感觉非常不错,马上装了一个wordpress上去,这时出现个问题,就是wordpress的发邮件功能无法使用。
由于linux下有sendmail函数可以实现发邮件,但是win32下就要使用smtp来发。xampp自带mercury的虽然可以用来建一个smtp服务器,但是操作起来太麻烦了,还不如使用sendmail.exe。

sendmail.exe其实是一个在win32下模拟sendmail函数的软件,在xampp里已经自带了。你在里面设置后你的smtp服务器之后,就可以伪装成sendmail来发邮件了。

可惜的是,sendmail.exe不支持gmail这种必须通过ssl连接smtp服务器,害得我弄了好久才明白。如果用126这些smtp服务器,很轻松就成功的,一换成gmail的就超时甚至卡死……

后来,我终于弄成功了,太高兴了,写出来和大家分享吧。

首先正确安装xampp,并登录你的gmail打开pop功能。
去http://www.stunnel.org/下载一个stunnel回来,最新版本是3.24。这是一个通用的SSL代理。
安装好后,打开配置文件,默认在这里C:\Program Files\stunnel\stunnel.conf,修改成这样:
cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client = yes
[smtpg]
accept = localhost:25
connect = smtp.gmail.com:465


然后保存,打开你的sendmail配置文件,一般在c:\xampp\sendmail\sendmail.ini这里,修改成这样:
[sendmail]
smtp_server=localhost
default_domain=gmail.com
auth_username=你的gmail邮箱,包括@gmail.com部分
auth_password=你的gmail邮箱密码
force_sender=你的gmail邮箱,包括@gmail.com部分


最后,配置你的php.ini文件,xampp的默认在这里:C:\xampp\apache\bin\php.ini,找到[mail function]和[SQL]中间的部分,改成:

sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"


其中C:\xampp\sendmail\sendmail.exe是你的sendmail.exe所在的位置。

现在启动stunnel和重新启动apache,怎么样,发邮件功能正常了吧。
PS:stunnel也可以安装成系统服务的……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章