Joomla 4 筆記(13):設定Gmail信箱發送郵件

Photo by Solen Feyissa on Unsplash

Joomla 是一套內容管理系統,最常見的是透過郵件進行通知,或藉由表單發送 Email 給相關聯絡人。如果要讓 Joomla 能夠寄信,必須先設定寄送郵件的伺服器資訊,且經過正確驗證後,才能正常發信。以下就以 Gmail 的信箱為例,說明如何設定 Gmail 的寄件伺服器(SMTP)來發送郵件。


[Gmail設定應用程式]

要透過 Gmail 發信,需先到 Google 帳戶申請一組應用程式密碼。首先登入 Google 帳號,到 Google帳戶安全性,點選「兩步驟驗證」,如下圖紅色框:

進入頁面後,將頁面下拉到最下方的「應用程式密碼」:


點選「應用程式密碼」後,在「您的應用程式密碼」的下方選擇[選取應用程式]→[郵件]:

右方選取裝置,我目前的環境是安裝在 Windows 的 Localhost ,選擇「Windows 電腦」:


完成後,按下「產生」按鍵,會出現一組 16 個字元的密碼,將這個密碼複製起來,稍後設定 Joomla 郵件時會用到。





[設定寄件伺服器]

回到 Joomla 後台管理,在首頁控制台點選[系統]→[全站設定],再點選[伺服器]頁簽,將捲軸拉到下方,可以看到「郵件設定」這個區塊,需要填寫以下幾個設定值:
  • 寄件人電子郵件:輸入您的 Gmail 郵件地址
  • 寄件人名稱:可自行定義您的名稱
  • 郵件模式:選擇「SMTP」
  • SMTP 主機:smtp.gmail.com
  • SMTP 埠號:587
  • SMTP 安全模式:選擇「STARTTLS」
  • SMTP 認證:選擇「是」
  • SMTP 帳號:輸入您的 Gmail 郵件地址
  • SMTP 密碼:輸入在 Google 應用程式申請的 16 個字元密碼

Joomla 允許三種寄送 Mail 方式:SMTP、Sendmail 及 PHP 郵件,要使用 Gmail 寄送信件就要使用 SMTP 選項。SMTP 全名是 Simple Mail Transfer Protocol,是電子郵件傳輸的標準協定。Joomla 可透過這個協定將訊息以郵件的形式,經由 SMTP 伺服器的 STARTTLS 安全模式,發送到收件者的郵件伺服器。

STARTTLS是一種明文通訊協定的擴充功能,能夠讓明文的通訊連線直接成為加密連線(使用SSL或TLS加密),而不需要使用另一個特別的埠來進行加密通訊,屬於機會性加密。[維基百科]

按下[發送測試郵件]的按鈕後,Gamil收到一封測試郵件:


[修改郵件範本]

在首頁控制台點選[系統]→[佈景主題][Mail模版],可以看到系統已經預設幾種模版:

點選「全站設定: Test Mail」,進入以下畫面,原本「%S」的位置,我們改用右邊的兩個系統標籤(sitename 及 method)取代,如下圖:

回到系統設定郵件伺服器的頁面,按下[發送測試郵件]的按鈕,收到的郵件樣式如下:



[PHP啟用OpenSSL設定]

如果出現 STARTTLS 相關傳輸錯誤,可能是因為 PHP 沒有開啟 Openssl 模組造成的。可以在 XAMPP 控制台,選擇[Config]→[PHP(php.ini)],如下圖:
或在PHP目錄下,開啟 php.ini 設定檔,找到以下這一行,將這行前面註解「;」刪掉,存檔離開後,重新啟動 Apache 即可。
extension=php_openssl.dll


[參考資料]

Post a Comment

較新的 較舊