Perl 脚本通过 sendmail 发送邮件非常慢 - 每 30 秒发送一封邮件

Perl 脚本通过 sendmail 发送邮件非常慢 - 每 30 秒发送一封邮件

我有一个 perl 脚本,可以将邮件发送到邮件列表。

在我的旧专用服务器上,它运行良好,基本上每秒发送一封电子邮件。我最近换了一台新的专用服务器,规格差不多,但速度非常慢,大约每 30 秒发送一封邮件。我设置了一个测试脚本来观察哪部分耗时最长:

open(MAIL,"| /usr/sbin/sendmail -tv -d8.7 $recipient_email");
print MAIL <<EOF;
From:Test Sender <$sender>
To:$recipient_email
Subject:Testing

Justw ant to see how long this takes

EOF
close(MAIL);

-d8.7 有一个调试选项,可以让我查看脚本的输出。我将把它粘贴在这里,有 3 个点都挂得太久了,我将在这里标记它们:

dns_getcanonname(receiving_server.com, trymx=1)

dns_getcanonname: trying receiving_server.com. (A)

此处延迟 5 秒 是的

dns_getcanonname: receiving_server.com

getmxrr([127.0.0.1], droplocalhost=1)

andrew@receiving_server.com... Connecting to [127.0.0.1] via relay...

220 my_server.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 18 May 2012 06:55:04 +0200

>>> EHLO localhost.localdomain

250-my_server.com Hello localhost.localdomain [127.0.0.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-ETRN

250-DELIVERBY

250 HELP

>>> MAIL From:<[email protected]> SIZE=115

此处延迟 10 秒

250 2.1.0 <[email protected]>... Sender ok

>>> RCPT To:<andrew@receiving_server.com>

>>> DATA

此处延迟 5 秒

250 2.1.5 <andrew@receiving_server.com>... Recipient ok

354 Enter mail, end with "." on a line by itself

>>> .

250 2.0.0 q4I4t4Lu014501 Message accepted for delivery

andrew@receiving_server.com... Sent (q4I4t4Lu014501 Message accepted for delivery)

Closing connection to [127.0.0.1]

>>> QUIT

221 2.0.0 my_server.com closing connection

据我所知,我的 /etc/hosts 和 /etc/resolv.conf 看起来很好,而这些是 Google 建议的唯一可能出现问题的东西,有人有什么想法吗?

答案1

看起来像

  1. 通过 DNS 解析名称延迟
  2. 通过远程 SMTP 服务器检查收件人
  3. 通过远程 SMTP 服务器检查发件人

远程服务器是否与以前相同?您是否能看到该服务器?

您是否在该接口上运行了 tcpdump 来查看间隙期间是否有任何协议活动?尝试以下操作(以 root 身份)-

# tcpdump -vvv -w output.pcap -i eth0 'port not 22'

这将捕获除 SSH 会话流量之外的所有流量并输出到文件“output.pcap”。

我不认为你有可能已经转移到某个黑名单上的 IP?以下网站可以帮助你找到答案 -

http://www.mxtoolbox.com/blacklists.aspx

相关内容