Smtp

Sendmail - exim4,postfix,Drupal SMTP - 沒有工作

  • June 8, 2013

我想從我的 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。

引用自:https://serverfault.com/questions/512068