2014年9月15日 星期一

(轉)讓xampp在windows環境下以gmail的smtp發信設定

因為需要測試php的mail函式,在windows下的sendmail並沒辦法使用。
而xampp的MercuryMail設定,若僅是測試又嫌麻煩,於是爬了文並實際使用,經過測試可行了,紀錄如下:

照例關鍵字:xampp、php、mail()、gmail、smtp、stunnel、windows環境


xampp不贅述了,看倌請自行下載。
首先先下載 stunnel,此篇運行時版本為4.27,點此下載。

運作原理
xampp在windows下apache並不能直接使用mail()函式,必須藉由xampp內帶的sendmail.exe模擬sendmail函式。
當設定好sendmail的相關設置後,一般就可以透過本身ISP業者提供的smtp進行郵件發送。
但gmail必須使用SSL安全連線方式登入後才可連入smtp寄送,於是使用stunnel,讓它來代理SSL連線。
而設置好後,xampp的sendmail.exe透過stunnel以SSL模式連入gmail的smtp伺服器,sendmail就能夠使用gmail的smtp進行郵件的發送了。
而xampp的apche就能夠透過sendmail.exe來運行php的mail()函式,而不用在架設郵件伺服器。






相關設定

apache
php.ini 檔,位置在 \xampp\apache\bin\php.ini

約700多行
SMTP = localhost
smtp_port = 25
sendmail_from = sample@gamil.com ← 改為寄信者的郵件

sendmail_path = "D:\xampp\sendmail\sendmail.exe -t" ← 路徑必須設定對
另外約在636行
extension=php_openssl.dll ← 將openssl啟動

/*---------------------------------------*/

sendmail
sendmail.ini 檔,位置在D:\xampp\sendmail\sendmail
若原本是註解(前面有分號;),就把前面的;拿掉,讓其執行。

smtp_server=localhost
smtp_port=25
default_domain=gmail.com
error_logfile=error.log

約在27行
auth_username=sample@gmail.com ← gmail信箱
auth_password=password ← 輸入你的gmail密碼

約41行
force_sender=sample@gmail.com ← gmail信箱

/*---------------------------------------*/

stunnel
stunnel.conf 檔,位置在 C:\Program Files\stunnel\stunnel.conf
原本是註解的就拿掉分號,取消註解。

cert = stunnel.pem
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
output = stunnel.log
client = yes

[ssmtp]
accept = 127.0.0.1:25
connect = smtp.gmail.com:465



上面都設定好了以後,記得gmail必須打開POP功能
開啟方式為:進入gmail,右上角設定 → 轉寄和POP/IMAP → POP下載 啟用POP功能 即可。
而apache重新啟動以後,就可以透過php的mail()函式進行郵件發送囉。
轉載自 http://ezcshi.pixnet.net/blog/post/29130214-%E8%AE%93xampp%E5%9C%A8windows%E7%92%B0%E5%A2%83%E4%B8%8B%E4%BB%A5gmail%E7%9A%84smtp%E7%99%BC%E4%BF%A1%E8%A8%AD%E5%AE%9A

沒有留言:

張貼留言