我写了一个Perl脚本(在机器A上),它将邮件发送到另一台服务器(机器B),然后将其反弹(使用procmail或其他转发机制,具体取决于机器B),然后是脚本机器A测量往返时间。
现在这种情况很好,但由于某种原因,当机器B是GMAIL时,这已停止工作。
以下是我调试它的方式:
我尝试使用命令行中的“mail -s”发送类似的消息,并且该邮件没有任何问题 - 所以邮件中继不是问题。
mailbounce@machineA.com:~$mail -s 'Round Trip Test 1366102726' mailbouncexxxxx@gmail.com
A simple test message From The Mail Round Trip Monitor...
.
cc:
mailbounce@machineA.com:~$
接下来,我将'to:'地址更改为我拥有的另一台机器,只是为了查看脚本是否有效。它没有问题地工作到另一台服务器(不是gmail)
接下来,我将脚本恢复为原始参数。我在端口25上启动了一个tcpdump并运行了脚本,然后使用命令行发送了邮件。在分析Wireshark中的数据包捕获并执行“跟踪TCP流”时,输出如下:
使用脚本(未送达):
220 mail.out.com ESMTP Exim 4.74 Tue, 16 Apr 2013 10:58:36 +0200
EHLO machineA.domain.com
250-mail.out.com Hello machineA.domain.com [10.184.55.248]
250-SIZE 13631488
250-PIPELINING
250 HELP
MAIL FROM:<mailbounce@ machineA.domain.com>
250 OK
RCPT TO:<mailbouncexxxxx@gmail.com>
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself
To: mailbouncexxxxx@gmail.com
Subject: Round Trip Test 1366102726
A simple test message From The Mail Round Trip Monitor...
.
250 OK id=1US1im-000Lr0-Qd
QUIT
221 mail.out.com closing connection
使用命令行(已成功发送):
220 mail.out.com ESMTP Exim 4.74 Tue, 16 Apr 2013 10:59:02 +0200
EHLO machineA.domain.com
250-mail.out.com Hello machineA.domain.com [10.184.55.248]
250-SIZE 13631488
250-PIPELINING
250 HELP
MAIL From:<mailbounce@machineA.domain.com> SIZE=635
250 OK
RCPT To:<mailbouncexxxxx@gmail.com>
DATA
250 Accepted
354 Enter message, ending with "." on a line by itself
Received: from machineA.domain.com (localhost.localdomain [127.0.0.1])
.by machineA.domain.com (8.13.8/8.13.8) with ESMTP id r3G8x0jq015631
.for <mailbouncexxxxx@gmail.com>; Tue, 16 Apr 2013 10:59:00 +0200
Received: (from mailbounce@localhost)
.by machineA.domain.com (8.13.8/8.13.8/Submit) id r3G8wxGJ015622
.for mailbouncexxxxx@gmail.com; Tue, 16 Apr 2013 10:58:59 +0200
Date: Tue, 16 Apr 2013 10:58:59 +0200
From: mailbounce User <mailbounce@machineA.domain.com>
Message-Id: <201304160858.r3G8wxGJ015622@machineA.domain.com>
To: mailbouncexxxxx@gmail.com
Subject: test2
test
.
250 OK id=1US1jC-000LvF-OQ
QUIT
221 mail.out.com closing connection
根据我上面所看到的,这应该是顺便的?我也检查了Gmail帐户中的“垃圾邮件”文件夹,但没有运气
为什么我的邮件在使用Net :: SMTP而不是使用命令行时通过相同的SMTP中继传递?我已经没有地方可以看了。
注意:
在创建此问题之前,我查看了How can I debug my Net::SMTP Perl program?。我没有在互联网上找到任何其他相关信息。
上面的主机名,电子邮件帐户和IP地址是虚构的 - 这是从输入/输出修改的全部内容