SMTP外寄郵件伺服器

不少朋友常問道:架設 PHP 論壇或是一些寄信表單時需要用上 PHP MAIL() 這組 function 但有趣的是,對於這組函數的設定上我們需要動到 php.ini 這個系統設定文件但是它完全不支援任何 smtp 認證的方式。
舉例來說最簡單的 AUTH LOGIN 這樣的 smtp 認證機制也不可用,如此一來衍生了一個很大的困難,咱不能使用 ISP 或者是 GMAIL (每個人都有這個帳戶吧)所免費提供的 smtp 來做寄信的這樣一個動作。
為什麼阿?因為 ISP 的 smtp 要你用帳戶及密碼來登入後才能寄信,而 GMAIL 的 SMTP 除了需要帳戶密碼之外,還需要支援 STARTTLS 才能寄信。這對只能做基本寄信的 php 程式來說實在是太強人所難了。
今天筆者這邊有一個簡單又安全的解決方案,讓閣下的寄信程式依然只要以 127.0.0.1 作為 smtp 來寄信的同時,又可以利用 google 的 smtp 免費幫你做寄信的這樣一個動作。
原理其實很簡單,我們在自己的伺服器上架設一個郵件伺服器軟體 "EVO企業郵件伺服器" 並且僅允許來自 127.0.0.1 的寄信要求,再由這強大的外寄郵件伺服器來做透過 GMAIL SSL 代寄信這樣一個動作。請至它的官網下載 => EVO mail server,設定到啟動不用兩分鐘這我們就不多說了。
開啟 EvoMailServer.exe 後,我們首先按下啟動服務的按鈕,接著打開[設定]>[進階模式]並依照如下的設定
以 google smtp 代寄為例: 外部SMTP主機代寄 ALWAYS SMTP主機的位址 打上外部 smtp 的位址比如 smtp.google.com
SMTP主機通訊埠 打上外部 smtp 的 port 比如 587
SMTP寄件者帳戶 打上帳戶(gmail完整郵件地址)
SMTP寄件者密碼 打上密碼(gmail密碼)

接下來[安全]>[SMTP開放以下IP位址無條件轉寄]下面填入 127.0.0.1 接下來[IP位址白名單]下面填入 127.0.0.1
最後確認閣下的 php.ini 中有如下的設定 SMTP =localhost smtp_port = 25 sendmail_from=你的gmail郵件地址
只要幾個簡單的步驟,閣下的寄信程式就可以原封不動地透過 gmail SSL smtp 代寄,而您,不必要修改任何一行程式碼,傑克!這真是太神奇了。