公告

國明的網路筆記

2015年10月10日 星期六

Windows Server SMTP

Windows Server SMTP 問題

網頁設計中常常需要有由系統發送信件的狀況 , 如Moodle、電子報系統、會員系統、購物車系統等, 而以PHP在Windows環境下 , mail()函式無法順利發信 , 以下列舉兩種狀況及解決方法

php.ini的設定錯誤
一般而言php.ini的路徑為 C:\xampp\php\php.ini
將php.ini打開,修改裡面的設定如下
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = account@example.com


若出現錯誤訊息 SMTP server response: 550 5.7.1
從我的電腦按右鍵 , 點選IIS管理
選取IIS服務管理工具 >>internet information services>>預設SMTP虛擬伺服器
選取工具列下的 執行>>內容(會彈出一個新視窗)
選取存取標籤分頁下轉接限制的轉接(會彈出一個新視窗)
選取新增>>單一電腦>>IP位置 填入127.0.0.1或主機IP 將您的主機列入允許清單
重新啟動IIS

當設定好SMTP伺服器後,接下來就是重啟阿帕契(Apache),重啟後就可以了!
你也可以建立下列的程式,測試系統是不是可以發信了,如果你的信箱可以收到信,這表示你的SMTP設定對了,如果不能收到信,那很可能是主機哪邊沒設定好,或者是說SMTP不能使用,也有可能是被防火牆、防毒軟體擋下來也說不定。

<?php
  $to ="yourmail@gmail.com";    // 收件者
  $subject = "test";                        // 信件標題
  $msg = "SMTP 發信測試";      // 信件內容
  $headers = "From: admin@gmail.com";      //寄件者
 
  if(mail("$to", "$subject", "$msg", "$headers")):
      echo "信件已經發送成功。";    //寄信成功就會顯示的提示訊息
  else:
      echo "信件發送失敗!";            //寄信失敗顯示的錯誤訊息
  endif;
?>





1 則留言:

  1. Online betting and esports at LACBet.com fun88 fun88 1xbet 1xbet 670Оан이지노 골드골드볜 - Sportsbook - Legalbet

    回覆刪除