移至主內容
首頁  >  Drupal目錄  >  安裝並設定smtp功能,讓 Drupal網站透過smtp寄信

安裝並設定smtp功能,讓 Drupal網站透過smtp寄信

Tag :
smtp, spf, php mail(), gmail
Written by Wanding on 12 July 2023

聯絡表單若使用主機的寄信功能,如這篇文章在Server安裝Postfix讓網站可寄信,常常會被Gmail給檔信,或是公司郵件的防火墻給拒絕。主要原因是SPF寄信者政策框架。

SPF(Sender Policy Framework) 寄信者政策框架

Gmail為了過濾垃圾郵件或惡意郵件,當收到一封信件時,它會檢查這郵件的發送者。 然後找到這郵件的發信站。SPF 就由 email (例如 site@abcde.com) 找到 abcde.com 這個 mail server的來源,然後透過找尋 DNS 當中的abcde.com 裡面的 TXT 紀錄, 當有 spf 的紀錄值,而且這封信件是來自 spf 記載的合法的 mail server 寄出的,那就通過驗證。

如果一台主機,只提供給一個網站使用,而且使用與網站的相同網域,那麼不會有違反SPF的問題。但現實狀況是,單一網站營運負載小,一台昂貴的伺服器若只給單一網站使用,不符合經濟效益,通常會同時服務多個網站。另外,市面得主機商普遍都是以虛擬主機的方式提供服務。在這種情形之下,網站寄出的email是 user@abcde.com 的郵件,但是該郵件卻是偽裝的! 實際可能來自於server的 mail server!在這種不得已錯誤的情況下,Gmail就透過SPF擋掉所有這種錯誤的信件,所以,網站寄出的信都沒收到。

網站寄信改採SMTP的方式

『SMTP Authentication Support模組』

該模組允許Drupal繞過PHP mail()函數並將電子郵件直接發送到 SMTP 服務器。該模組支持SMTP身份驗證,如果PHPMailer支持,甚至可以使用SSL連接到服務器。

它使用PHPMailer庫通過SMTP協議發送郵件。雖然它可以是Drupal郵件系統的獨立模組,但您也可以使用郵件系統模組來管理包括SMTP在內的多個郵件程序模組。

使用composer安裝,cd到網站的根資料夾:

composer require 'drupal/smtp:^1.2'

安裝完成後,到設定|系統|SMTP Authentication Support,進到下列設定畫面,如果您是用GMAIL信箱來當作SMTP發信,依照下列設定即可完成。
如果是主機商的cpanel,需要先在主機申請一組email,然後再依照此申請email的SMTP資料進行設定。

smtp01

 

smtp02

返回Drupal
首頁  >  Drupal  >  安裝並設定smtp功能,讓 Drupal網站透過smtp寄信

安裝並設定smtp功能,讓 Drupal網站透過smtp寄信

Tag :
smtp, spf, php mail(), gmail
Written by Wanding on 12 July 2023

聯絡表單若使用主機的寄信功能,如這篇文章在Server安裝Postfix讓網站可寄信,常常會被Gmail給檔信,或是公司郵件的防火墻給拒絕。主要原因是SPF寄信者政策框架。

SPF(Sender Policy Framework) 寄信者政策框架

Gmail為了過濾垃圾郵件或惡意郵件,當收到一封信件時,它會檢查這郵件的發送者。 然後找到這郵件的發信站。SPF 就由 email (例如 site@abcde.com) 找到 abcde.com 這個 mail server的來源,然後透過找尋 DNS 當中的abcde.com 裡面的 TXT 紀錄, 當有 spf 的紀錄值,而且這封信件是來自 spf 記載的合法的 mail server 寄出的,那就通過驗證。

如果一台主機,只提供給一個網站使用,而且使用與網站的相同網域,那麼不會有違反SPF的問題。但現實狀況是,單一網站營運負載小,一台昂貴的伺服器若只給單一網站使用,不符合經濟效益,通常會同時服務多個網站。另外,市面得主機商普遍都是以虛擬主機的方式提供服務。在這種情形之下,網站寄出的email是 user@abcde.com 的郵件,但是該郵件卻是偽裝的! 實際可能來自於server的 mail server!在這種不得已錯誤的情況下,Gmail就透過SPF擋掉所有這種錯誤的信件,所以,網站寄出的信都沒收到。

網站寄信改採SMTP的方式

『SMTP Authentication Support模組』

該模組允許Drupal繞過PHP mail()函數並將電子郵件直接發送到 SMTP 服務器。該模組支持SMTP身份驗證,如果PHPMailer支持,甚至可以使用SSL連接到服務器。

它使用PHPMailer庫通過SMTP協議發送郵件。雖然它可以是Drupal郵件系統的獨立模組,但您也可以使用郵件系統模組來管理包括SMTP在內的多個郵件程序模組。

使用composer安裝,cd到網站的根資料夾:

composer require 'drupal/smtp:^1.2'

安裝完成後,到設定|系統|SMTP Authentication Support,進到下列設定畫面,如果您是用GMAIL信箱來當作SMTP發信,依照下列設定即可完成。
如果是主機商的cpanel,需要先在主機申請一組email,然後再依照此申請email的SMTP資料進行設定。

smtp01

 

smtp02