Sendmail - exim4、postfix、Drupal SMTP - 均不起作用

Sendmail - exim4、postfix、Drupal SMTP - 均不起作用

我想从我的 Debian 6 服务器发送电子邮件。我只想发送。我按照我能找到的有关 Sendmail、Exim4 和 Postfix 的每一组说明操作,但都无法正常工作。我尝试了SMTP 身份验证支持模块通过 Gmail 帐户发送邮件。但后来它也突然停止工作了。我可以通过模块的配置表单发送测试电子邮件,但尝试通过drupal_mail()失败。

mail -v [email protected]报告说邮件已被接受并准备投递,但邮件从未到达我的收件箱。以下是输出。我以为问题可能出在 上MAIL From: travis@debian,但我尝试更改它的所有方法也都失败了。我更改/etc/email-addresses并添加了一个重写规则,并使用f标志来更改发件人标头,但无济于事。无论如何,输出:

turibe@servername:~$ mail -v [email protected]
Subject: Testing
bloopy
.
EOT
[email protected]... 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:<[email protected]> SIZE=218 [email protected]
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <[email protected]>... 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:<[email protected]>
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 <[email protected]>... Sent (OK 1369900381 zb4si24120260obb.80 - gsmtp)
250 2.0.0 r4U7r1kG022811 Message accepted for delivery
[email protected]... 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然后他就走了,但同样的步骤对我来说都不起作用。

更新在询问之前,我确实确保所有出站连接都已启用。事实上,邮件命令确实似乎成功连接到了 GMail。

更新该服务器是Linode服务器,而不是家庭服务器。

更新我跟着本文完全正确,没有遇到任何错误。但是,发送电子邮件还是没成功。我一生中唯一的愿望就是能​​够从我的服务器发送电子邮件。

更新我试过本文同样 - 没有运气。/var/log/exim4/mainlog几分钟后记录到消息被冻结。

答案1

您应该将服务器配置为使用智能主机作为中继。通常,您的 ISP 会为您提供中继。

如果您想直接发送到互联网,您需要固定的 IP 地址,并带有指向返回该地址的 A 记录的 PTR 记录。否则许多服务器会阻止您。您还应该有一个指向您发送邮件的域的 MX 记录,该记录指向您的邮件服务器名称。除非他们禁止您的服务器为该域发送邮件,否则两个域的 SPF 记录都会有所帮助。

Spamhaus 列出了许多动态 IP 地址范围,如果您的 IP 地址列在其中,您将被阻止。如果您被列入其他黑名单,您也可能会被阻止。

您的邮件服务器已接受邮件并进行投递,但这并不意味着您的邮件服务器能够投递该邮件。尝试该mailq命令以查看您的服务器是否仍在尝试发送该邮件。电子邮件是存储和转发的,您的服务器可能需要一天左右的时间才能告诉您它在投递邮件时遇到了问题。

编辑:最简单的解决方案是使用命令dpkg-reconfigure exim4-config并选择智能主机选项。使用提供商的电子邮件中继,一切应该会顺利进行。确保您使用有效的发件人电子邮件地址。虽然 GMail 可能有效,但设置所需的身份验证需要额外的努力,如果您没有付费帐户,他们可能会限制您发送的电子邮件数量。

如果你想运行自己的邮件服务器,你可以从我的文章开始运行和电子邮件服务器。您可能还想查看我的电子邮件政策该文件及其列出的文件。我还有其他几份帖子与电子邮件相关。我选择的服务器是 Exim。

答案2

我最终按照这篇文章让电子邮件正常运行: http://wiki.debian.org/GmailAndExim4

关键的区别似乎是这一行/etc/exim4/passwd.client*.google.com:[email protected]:y0uRpaSsw0RD

添加它后,我的电子邮件开始正常工作。以前,我一直使用smtp.gmail.com而不是*.google.com。我尝试删除该行,改用 行,smtp.gmail.com以验证是否已解决问题,结果确实如此,因为如果没有该行,我就无法发送电子邮件*.google.com

由于我确实有一个付费的 Google Apps 帐户,因此使用 Google 作为智能主机对我来说是一个很好的解决方案。

相关内容