在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也可以安裝成系統服務的……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章