XAMPP 伺服器郵件設定與 PHP mail() 函式使用教學

3 月 16, 2023 | | 0 comments

本教學主要介紹如何在 XAMPP 伺服器上使用 PHP 的 mail() 函數,並設置使用SMTP Gmail發送電子郵件。下面是具體步驟:

步驟 1:修改 php.ini 檔案

打開 xampp\php\php.ini 文件,並確保以下設置已經更改:

extension=php_openssl.dll

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = Your_GMail
sendmail_path ="\"C:\xampp\sendmail\sendmail.exe\" -t"

這些設置將啟用 OpenSSL 擴展,將 SMTP 服務器設置為 Gmail,並配置 sendmail 路徑。

若你是使用Mac電腦內建的php設置默認情況下,sendmail 命令是符號鏈接到 Postfix 的可執行文件,而不是 Sendmail。因此,在 Mac 上配置 PHP 的 sendmail_path 時,您需要使用 Postfix 的可執行文件路徑而不是 Sendmail 的路徑。

Mac 上配置 PHP 的 sendmail_path

 sendmail_path = /usr/sbin/postfix -t -i

步驟 2:修改 sendmail.ini 檔案

打開 xampp\sendmail\sendmail.ini 文件,並確保以下設置已經更改:

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
default_domain=gmail.com
auth_username=Your_GMail
auth_password= Your_GMail_Password
force_sender=Your_GMail

這些設置將配置 sendmail 來使用 Gmail SMTP 服務器,並設置發件人的電子郵件地址和密碼。

步驟 3:開啟 Google 兩步驗證

如果您啟用了 Google 的兩步驗證,您需要按照此處的指示來生成一個應用程序密碼:https://myaccount.google.com/security

步驟 4:編寫 PHP 程式

編寫一個 PHP 程式,使用 mail() 函式發送郵件,範例如下:

$from_name = 'Your_NAME';
$from_email = 'Your_GMail';
$body = 'This is a test mail';
$subject = 'Test email from php mail()';
$to = 'xxx@gmail.com';

if (mail($to, $subject, $body)) {
  echo "success!";
} else {
  echo "fail…";
}

這個例子中,您需要將 Your_NAME,Your_GMail,example@gmail.com 和 Your_GMail_Password 替換為您自己的信息。

最後,您可以在瀏覽器中運行此代碼,並在成功發送電子郵件時會顯示“success!”消息。如果出現問題,則會顯示“fail…”消息。

免費的 SMTP 服務可供選擇

上面教學使用大眾常使用的Gmail作為 SMTP 服務器來發送電子郵件,Gmail在之前被濫用後現在的認證設置比較嚴格,若覺的 Google 的兩步驗證有些瑣碎,可以選擇以下也列出幾個免費的服務商。

  1. Zoho 是一家云端服務提供商,提供各種雲端服務,包括電子郵件和協作工具。 Zoho 也提供了一個 SMTP 服務器,讓您可以使用 Zoho 的基礎設施來發送電子郵件。免費帳戶的每日電子郵件發送限制為每天100封郵件,這些郵件可以發送到任何收件人,包括您的客戶和聯繫人。

  2. Outlook SMTP:Outlook 也提供了 SMTP 服務器,主機名為 smtp.office365.com,端口為 587(TLS 加密)或 465(SSL 加密)。要使用 Outlook SMTP,您需要使用 Outlook 帳戶的用戶名和密碼進行身份驗證。

  3. Sendinblue SMTP:Sendinblue 是一個電子郵件營銷和自動化平台,也提供免費的 SMTP 服務器。 SMTP 服務器的主機名為 smtp-relay.sendinblue.com,端口為 587(TLS 加密)。要使用 Sendinblue SMTP,您需要在 Sendinblue 網站上註冊帳戶並創建 SMTP 密鑰。

這些免費的 SMTP 服務可能有一些限制,例如每天發送郵件數量的限製或需要進行額外的身份驗證步驟。如果您需要更高級別的 SMTP 服務,則可能需要付費訂閱。

閱讀更多教學參照:https://www.youtube.com/watch?v=VB42v_8FNPQ