IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何利用XAMPP‧在本機(localhost)環境下用SMTP伺服器寄送電郵

01. 今天有朋友問到一個問題,營銷網站用WordPress加WooCommerce做好了,一切也算正常。但最大問題是客戶下單後,員工總是收不到網站發出的電郵通知。

02. 先檢查一下伺服器apache的error.log及access.log,一切也正常,沒有有關錯誤。

03. 網站是用WordPress做的,所以先測試一下wp_mail函數是否正常。在網站root位置,建立以下PHP檔案測試一下。

<?php
$to = "receiver@gmail.com";
$subject = 'wp_mail test';
$message = 'This is a testing message for wp_mail function.';
$headers = '';
define('WP_USE_THEMES', false);
require('wp-load.php');
$sent_message = wp_mail($to, $subject, $message, $headers);
if ($sent_message) {
echo 'Message is sent. Check your mailbox.';
} else {
echo 'Message is not sent.';
}
?>

04. 出來的結果就是不能成功發出電郵。

05. 原來是需要設定localhost內的SMTP伺服器,沒有SMTP伺服器,就發不出電郵。那何來SMTP伺服器,免費的GMAIL就有了。

06. 打開XAMPP的php.ini檔案,更改以下內容:

將:
; extension=php_openssl.dll
更改為:
extension=php_openssl.dll
在[mail function]位置,將:
SMTP=localhost
smtp_port=25
;sendmail_path =
更改為:
SMTP=smtp.gmail.com
smtp_port=465
sendmail_path = "\\"C:\\xampp\\sendmail\\sendmail.exe\\" -t"

07. 打開XAMPP的sendmail.ini檔案,正常sendmail.ini檔案是位於c:\\xampp\\sendmail資料夾內。

在[sendmail]位置,將:
smtp_server=mail.mydomain.com
smtp_port=25
auth_username=
auth_password=
更改為:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=<your gmail login>
auth_password=<your gmail password>

08. 完成後,重新啟動apache服務。

09. 再次執行第3項的程式碼,這次應看到郵件成功傳送訊息。

10. 而在第3項設置的收件人中,會收取到以下電郵。

11. 登入WordPress,在左邊目錄選WooCommerce圖示,再選擇『Settings』。

12. 在目錄表中選『Emails』,確保Email Sender Options內的名稱及電郵正確。

13. 按下『New Order』連結,確保Enable/Disable是已打勾,及當有新訂單時,要收到通知的收信人電郵,完成後記緊要儲存設定。

14. 當有新訂單時,便會收到通知。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *