公告

國明的網路筆記

2012年11月24日 星期六

在Windows Server 中PHP如何設定SMTP

在 Windows Server 中架設一些 Open Source 的伺服器服務,因為這些大都是PHP + Apache的語法,常常需要發送 mail,但 Windows Server 並沒有安裝 mail Server ,所以必須透過外部的 SMTP Server。
問題發生了,大多數的 SMTP Server 都有阻止 Relar 的設定,所以只要發送信件,都會失敗,天啊!怎麼辦?
SMTP Server 都有阻止 Relar 的設定,那就自己轉寄啊,先 Enable SMTP 服務,再限定只有自己本身可以轉寄就 OK 了!

1. 先新增 Windows Server 2008 的 SMTP 功能。
2. 在 IIS 管理工具中,按 SMTP 右鍵->內容->存取,在轉送畫面中,新增自己的IP (127.0.0.1)
3. 修改 PHP 資料夾中的 php.ini,取消一些 ';' ,如下:


[mail function]
; Use SMTP for sending mail instead of mail()
smtp = On

; For Win32 only.
SMTP = localhost

smtp_port = 25  

; For Win32 only.
sendmail_from = YourMailID@YourMail.com
......
4. 重啟 Apache!
5. 自建一 PHP 送信程式試試!

<?php 
  $to ="yourmail@your.com";      // 收件者 
  $subject ="test";        // 信件主旨 
  $msg = "smtp發信測試";      // 信件內容 
  $headers = "From: admin@your.com";       // 寄件者

  if(mail("$to","$subject", "$msg", "$headers"))
    echo "信件已經發送成功。";    // 寄信成功就會顯示的提示訊息
  else
    echo "信件發送失敗!";      // 寄信失敗顯示的錯誤訊息 
?>




沒有留言:

張貼留言