希望有人能幫忙,這讓我發瘋了。
在我的一生中,我無法讓 Drupal 9 站點發送 PHP 郵件,但基本相同設定的 Drupal 7 站點不會失敗。唯一真正的區別是 Drupal 9 使用的是 PHP 8.1.6,而 Drupal 7 站點使用的是 PHP 7.3.27。
Drupal 9 的 Web 服務器是 Apache/2.4.38 (Debian) Drupal 7 的 Web 服務器是 Apache/2.4.25 (Debian)
兩種設定都是 docker php Debian(兩者都安裝了所有相同的 php-extensions - 沒有什么不同)和使用 Composer 安裝的 Drupal(兩者都推薦的方式)
如果我測驗聯系表格、密碼重置和用戶注冊——兩個站點都說他們正在發送相關的電子郵件,但只有 Drupal 7 提供,Drupal 9 在日志中沒有給出錯誤,并且像在 Drupal 7 中一樣說“已發送”,但沒有發送任何內容。
這非常令人沮喪。除了 PHP 版本之外,它們幾乎相同 - 為什么 Drupal 9 站點不發送 PHP 電子郵件?
我查看了 exim4(使用正確的 DNS 和記錄在兩個設定上實時運行)Drupal 9 的 exim4 中的日志最初說不支持郵寄到遠程域 - 所以我查了一下并被告知運行配置向導并設定為 Internet/SMTP ,所以我這樣做了(但除了提供我所做的完全限定域名之外,說明沒有包括 20 個額外步驟),老實說,我不知道要設定什么 - 不用說什么都沒有用。
我不明白為什么不用為 Drupal 7 更改任何關于 exim4 的東西就可以正常作業,但現在我必須為 Drupal 9 更改 exim4 中的設定——“這沒有任何意義”
使用配置向導更改 exim4 后,我現在得到:(在 exim4 主日志中)
[email protected] R=dnslookup T=remote_smtp defer (101): Network is unreachable
H=aspmx.l.google.com [2607:f8b0:4004:c08::1a] Network is unreachable
H=aspmx.l.google.com [172.253.63.27] Connection timed out
H=gmail-smtp-in.l.google.com [142.251.16.26] Connection timed out
H=alt1.gmail-smtp-in.l.google.com [2a00:1450:400b:c00::1a] Network is unreachable
H=alt2.aspmx.l.google.com [2a00:1450:400c:c0b::1a] Network is unreachable
H=alt3.aspmx.l.google.com [2a00:1450:4025:401::1b] Network is unreachable
這兩個站點都是使用 MX 記錄設定的域,用于在同一用戶帳戶(2 個不同的域)下與 google 作業區一起使用,兩者的配置完全相同,除了稍微不同的 DKIM 和 SPF 記錄,每個記錄都是唯一的,但由 Google Workspace 驗證為正確。
關于exim4,我很確定我沒有提供配置向導中所需的一些正確資訊,例如用戶和/或我不確定的其他一些東西(可能是日志更改的原因)-但我沒有'不必對 Drupal 7 站點執行任何這些操作(它可以正常作業)。
我研究了將 exim4 配置重置為默認值,但似乎沒有辦法在不再次運行向導的情況下這樣做,我不清楚如何正確地做到這一點(那里的任何指示都只是說選擇互聯網選項并設定完全限定的域,這應該可以解決問題,完全忽略了向導在做出這些初始選擇并提供域后提出的 10 到 15 個步驟和問題。
我不能是唯一一個遇到這種情況的人——但我沒有發現任何特定于 Drupal 9 的東西——所有東西的日期都像 1 到 6 歲,而且沒有一個符合這種情況。
所以......我如何讓這個作業(并且有一種清晰簡單的方法可以將 exim4 重置為默認安裝的設定,而不會跳過沒有意義的箍(至少對我來說)
我不想在 Drupal 9 中添加另一個郵件模塊來使用 3rd 方 SMTP 服務來發送簡單的聯系表單電子郵件(但看起來這將是唯一的選擇,不應該) - 這應該只是作業像 Drupal 7 這樣的盒子并沒有。
如果有幫助的話,我很樂意提供用于構建每個檔案的 Docker 檔案(讓我知道,我會在回復中復制并粘貼它們,我只是懷疑是否會有任何值得注意的東西來解釋原因)——兩者站點運行在相同的服務器、相同的防火墻、不同的容器上(它們甚至在相同的內部 Docker 網路上)
我已經用這個在磚墻上敲了兩天了,在這一點上,任何幫助都將不勝感激!
uj5u.com熱心網友回復:
因此,要回答我自己關于將 exim4 重置為默認初始配置的部分問題。
您需要清除它以及所做的所有組態檔/更改,然后重新安裝它。
去做這個
apt-get purge --auto-remove exim4-config
將“自動”與清除一起使用會洗掉所有內容,包括任何配置
接下來只需重新安裝 exim4(這將設定默認配置,因為它最初是創建/構建的,無論您的堆疊最初是如何創建的。
要做到這一點:
apt-get install exim4
- 一切恢復正常 - 無需運行配置向導(尤其是在嘗試重新運行配置向導以恢復默認值時,不斷無法達到您想要的結果。
至于其余部分,我決定簡化并設定 SMTP 授權模塊并使用外部電子郵件(Google Workspaces “以前的 G-Suite”)來處理 Drupal 9 的所有外發電子郵件,因為沒有人可以回答為什么 Drupal 9 不會使用 PHP 發送電子郵件,就像 Drupal 7 一樣開箱即用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/487344.html
標籤:php 电子邮件 德鲁巴 drupal-7 exim4
