Sendmail - exim4,postfix,Drupal SMTP - 沒有工作
我想從我的 Debian 6 伺服器發送電子郵件。我只想發送。我已經按照我能找到的關於 Sendmail、Exim4 和 Postfix 的所有說明進行操作,但無法正常工作。我嘗試使用SMTP 身份驗證支持模組通過 Gmail 帳戶發送郵件。但後來這也突然停止了工作。我可以通過模組的配置表單發送的測試電子郵件有效,但嘗試通過drupal_mail()發送失敗。
mail -v travis@targetdomain.com
報告郵件已被接受以進行傳遞,但郵件從未到達我的收件箱。下面是輸出。我在想也許問題出在 . 上MAIL From: travis@debian
,但我試圖改變的一切也都失敗了。我已經更改/etc/email-addresses
並添加了一個帶有f
標誌的重寫規則來更改 from 標頭,但無濟於事。無論如何,輸出:turibe@servername:~$ mail -v travis@addressdomain.com Subject: Testing bloopy . EOT travis@addressdomain.com... Connecting to [127.0.0.1] via relay... 220 example.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.4; Thu, 30 May 2013 00:53:01 -0700; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1] >>> EHLO example.com 250-example.com Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH DIGEST-MD5 CRAM-MD5 250-DELIVERBY 250 HELP >>> VERB 250 2.0.0 Verbose mode >>> MAIL From:<turibe@example.com> SIZE=218 AUTH=turibe@example.com 250 2.1.0 <turibe@example.com>... Sender ok >>> RCPT To:<travis@addressdomain.com> >>> DATA 250 2.1.5 <travis@addressdomain.com>... Recipient ok 354 Enter mail, end with "." on a line by itself >>> . 050 <travis@addressdomain.com>... Connecting to aspmx.l.google.com. via esmtp... 050 220 mx.google.com ESMTP zb4si24120260obb.80 - gsmtp 050 >>> EHLO example.com 050 250-mx.google.com at your service, [2600:3c00::f03c:91ff:fe70:4335] 050 250-SIZE 35882577 050 250-8BITMIME 050 250-STARTTLS 050 250-ENHANCEDSTATUSCODES 050 250 PIPELINING 050 >>> STARTTLS 050 220 2.0.0 Ready to start TLS 050 >>> EHLO example.com 050 250-mx.google.com at your service, [2600:3c00::f03c:91ff:fe70:4335] 050 250-SIZE 35882577 050 250-8BITMIME 050 250-ENHANCEDSTATUSCODES 050 250 PIPELINING 050 >>> MAIL From:<turibe@debian> SIZE=471 050 250 2.1.0 OK zb4si24120260obb.80 - gsmtp 050 >>> RCPT To:<travis@addressdomain.com> 050 >>> DATA 050 250 2.1.5 OK zb4si24120260obb.80 - gsmtp 050 354 Go ahead zb4si24120260obb.80 - gsmtp 050 >>> . 050 250 2.0.0 OK 1369900381 zb4si24120260obb.80 - gsmtp 050 <travis@addressdomain.com>... Sent (OK 1369900381 zb4si24120260obb.80 - gsmtp) 250 2.0.0 r4U7r1kG022811 Message accepted for delivery travis@addressdomain.com... Sent (r4U7r1kG022811 Message accepted for delivery) Closing connection to [127.0.0.1] >>> QUIT 221 2.0.0 example.com closing connection
我嘗試了幾個不同的地址。這讓我瘋狂。這似乎應該是一個相當簡單的問題來解決,但我沒有嘗試過,也沒有任何我能找到的關於這個問題的方法。我讀過很多文章,作者說他發送郵件所做的一切就像
apt-get install sendmail
他走了一樣,但沒有一個相同的步驟對我有用。更新在問這個問題之前,我確實確保所有出站連接都已啟用。事實上,mail 命令似乎確實成功連接了 GMail。
更新此伺服器是 Linode 伺服器,而不是家庭伺服器。
更新我完全按照這篇文章進行操作,完全沒有遇到任何錯誤。儘管如此,發送電子郵件仍然沒有運氣。我生活中想要的只是能夠從我的伺服器發送電子郵件。
更新我也試過這篇文章- 沒有運氣。
/var/log/exim4/mainlog
幾分鐘後記錄消息被凍結。
我終於通過這篇文章得到了電子郵件: http ://wiki.debian.org/GmailAndExim4
關鍵區別似乎是這一行
/etc/exim4/passwd.client
:*.google.com:SMTPAccountName@gmail.com:y0uRpaSsw0RD
一旦我添加了它,我的電子郵件就開始工作了。以前,我一直在使用
smtp.gmail.com
而不是*.google.com
. 我嘗試刪除該行以支持該smtp.gmail.com
行以驗證這是否已解決,確實如此,因為沒有該行我無法發送電子郵件*.google.com
。因為我確實有一個付費的 Google Apps 帳戶,所以使用 Google 作為智能主機對我來說是一個很好的解決方案。
您應該將伺服器配置為使用智能主機作為中繼。通常,您的 ISP 會提供一個中繼供您使用。
如果你想直接發送到網際網路,你需要一個固定的 IP 地址和一個指向返回地址的 A 記錄的 PTR 記錄。否則很多伺服器會阻止你。您還應該擁有從該點發送到您的郵件伺服器名稱的域的 MX 記錄。兩個域的 SPF 記錄都會有所幫助,除非它們禁止您的伺服器為該域發送數據。
Spamhaus 列出了許多動態 IP 地址範圍,如果您的 IP 地址列在那裡,您將被阻止。如果您被列入其他黑名單,您也可能會被屏蔽。
僅僅因為您的郵件伺服器已接受郵件進行投遞,並不意味著您的郵件伺服器將能夠投遞。嘗試該
mailq
命令以查看您的伺服器是否仍在嘗試發送消息。電子郵件是儲存和轉發的,您的伺服器可能需要一天左右的時間來告訴您它在傳遞郵件時遇到問題。編輯:最簡單的解決方案是使用命令
dpkg-reconfigure exim4-config
並選擇 smarthost 選項。使用您的提供商的電子郵件中繼,事情應該會運作良好。確保您使用有效的發件人電子郵件地址。雖然 GMail 可以工作,但設置所需的身份驗證需要額外的努力,如果您沒有付費帳戶,它們可能會限制您發送的電子郵件數量。如果您想執行自己的郵件伺服器,可以從我關於執行和電子郵件伺服器的文章開始。您可能還想查看我的電子郵件政策文件及其列出的文件。我還有其他幾篇與電子郵件相關的文章。我選擇的伺服器是 Exim。