|
線上郵寄在網頁程式中很重要,但是它有許多的設定重點,都不在程式上,而是在郵件服務。 所以無法寄信並不是程式或是 XAMPP 的問題, 因為由程式將信件傳送到SMTP進行交換,也就等於將信件是否能夠派發的動作交給了SMTP。 您必須先修改好您的 php.ini 在 SMTP 的服務主機,也要確定該主機可以供您使用。 如果您沒有架 SMTP 的主機,最方便的方式就是使用 ISP 的郵件主機。 例如我們公司使用的是中華電信的 ADSL,所以在上面連線的主機可以使用中華電信的 SMTP : msa.hinet.net。 因為我不知道您的主機,也就是您模擬開發的機器是否用的是中華電信的線路, 因為寄信時,主機會檢查所來源主機的IP是否是合法的寄信IP, 如果是,中華電信的SMTP應是不會阻擋您的信件,而進行交換。 其實您的程式可能都沒有錯,只是SMTP沒有幫您轉信,所以才造成您收不到信的問題。 為什麼郵件主機會控管如此嚴格?因為線上發信的動作與一般的廣告信無異,如果沒有控管,可能會造成許多問題。
最好的方式,如果您本身並沒有主機的建置經驗, 建議您可以承租便宜並有提供線上寄信的虛擬主機,如此一來就會有較好而穩定的服務。
建議您可以用「php gmail smtp」關鍵字搜尋看看, 有許多教材可以參考。
但是還是要注意,主機發信要慎重,否則很容易讓主機成為垃圾郵件的黑名單。 |