我在VMWare虚拟机中运行Ubuntu 10.04和Sendmail。 在我的mail.log文件中,我有成千上万的连接拒绝错误,我想摆脱它们。 每秒都有多个错误,我相信这个问题正在导致我们的一些合法的电子邮件不被发送。
例:
Jul 13 08:20:02 mail sm-msp-queue[28076]: s6C3K6e0008595: to=root, ctladdr=smmsp (115/126), delay=1+08:59:56, xdelay=00:00:00, mailer=relay, pri=8940371, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6C3K19D008593: to=smmsp, delay=1+08:59:58, xdelay=00:00:00, mailer=relay, pri=8941647, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6D2K2lX023270: to=postmaster, delay=09:59:56, xdelay=00:00:00, mailer=relay, pri=9331939, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6C7e3Cp010618: to=postmaster, delay=1+04:39:47, xdelay=00:00:00, mailer=relay, pri=9754324, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6BNe474006871: to=root, ctladdr=smmsp (115/126), delay=1+12:39:58, xdelay=00:00:00, mailer=relay, pri=9930371, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6CMK1lb021417: to=root, delay=13:59:57, xdelay=00:00:00, mailer=relay, pri=10410356, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6BLK2Bk005641: to=postmaster, delay=1+14:59:56, xdelay=00:00:00, mailer=relay, pri=10571717, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1] Jul 13 08:20:02 mail sm-msp-queue[28076]: s6BK01i9004244: to=postmaster, delay=1+16:20:00, xdelay=00:00:00, mailer=relay, pri=10926911, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]`
我已经阅读了一个潜在的问题是sendmail没有监听端口25,所以我运行了这个命令
# sudo netstat -a -n -p |grep 0.0.0.0:25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1137/sendmail: MTA:`
我也尝试改变线路:
DAEMON_OPTIONS('Name=MTA, Addr=127.0.0.1, Port=smtp')dnl` DAEMON_OPTIONS('Name=MSP, Addr=127.0.0.1, Port=submission')dnl`
在我的sendmail.mc并重buildsendmailconfiguration,但是当我这样做时我根本无法发送邮件。
我附上我的主机文件的副本,因为我不是100%确定它是正确的。
127.0.0.1 example.org localhost localhost.localdomain mail.example.org.localdomain` 10.1.1.204 example.org mail.example.org mail.example.ci.oh.us mail-server`
我们的邮件服务器“mail.example.org”处理来自我们的web服务器“example.org”的所有中继邮件。这部分总是让我感到困惑,但是当我接pipe这些服务器时,它就是这样设置的。
感谢您的任何帮助,让我知道如果你需要我发表其他的东西。 为了解决这些错误,我会尽我所能。
你有没有searchsendmail日志rejecting connections ... ?
当系统负载平均值过高时,Sendmail可能会拒绝接收传入的连接。
检查“客户端队列”( mailq -Ac )中的邮件数量 – 在某些情况下,这类问题是由客户端队列中大量的垃圾邮件引起的,例如由于托pipe/黑客入侵的“垃圾邮件友好”网页。
如何阅读人力格式的巨大clientmqueue?
您可以使用sendmail.mc文件中的以下行增加默认值12的“拒绝加载平均值”:
define(`confREFUSE_LA',`20')
Nick Christenson的“Sendmail性能调优” (第139页)讨论了如何在专用的非Linux服务器上将其设置在12到20之间,在专用的Linux服务器上甚至更高。 [Linux以不同的方式计算负载平均值]
Sendmail-8.14.0引入了选项将其设置为DaemonPortOptions参数。 您可以使用它来设置不同的refuseLA for loopback(127.0.0.1),内部和公共IP地址。
看起来消息正在被延期,所以可能是你在队列中有一些消息被重复重试。 看看你的队列(mailq),看看是否可能是这种情况。
您可以查看队列中的单个消息:进入队列目录,每个电子邮件都有两个文件,一个以df *开头,另一个以qf *开头。 他们结合起来构成了整个消息(一个包含有关队列细节的信息,另一个是电子邮件内容…是故意简化的解释:-))。 如果您查看详细信息并决定要从队列中删除消息,则可以删除同一队列标识的两个文件。 或者,你可以将所有的文件移动到另一个目录,将它们从队列中删除,然后在那里查看你的闲暇时间,并退回任何你真正想要尝试和重新发送(我从来没有遇到过队列ID问题所以..但是自然你正在通过这样做正常的sendmail进程中间)。
如果他们是合法的,需要重试,也许你可能需要调整你的sendmailconfiguration中的重试设置,以减less尝试次数(在放弃和生成NDR之前重试频率和总时间)。 我将把这些设置留给你看(在configuration本身或者基本的网页search中很容易find)。
确定消息是什么是当然的第一步,所以你可以看到是否有东西填满你的队列,或者只是重试发送不良电子邮件等。
至于通过邮件服务器中继的Web服务器并不罕见。 通常只有一个邮件出口点可以更容易地pipe理你的SPFlogging等等。正常的注意事项,以确保你的networking服务器没有受到危害,并把你变成一个垃圾邮件发送者(因为你的邮件服务器将中继它发送的)是当然有保证。
最后,我通常会设想那些影响合法电子邮件的重试/连接的唯一方法就是如果您处理的队列足够大,以致合法的电子邮件将等待重试。 这通常不是这样的情况,因为新的电子邮件将首先在队列中被尝试…但是如果为了正常的合法原因而延期,那么它将不得不通过正常的队列重试来工作。
另外:在查看你的日志条目,它提供了队列ID。 因此,例如,如果“s6C3K6e0008595”的条目仍在您的队列中,则将会有一个您可以检查的qfs6C3K6e0008595和dfs6C3K6e0008595文件。