Perl:Net :: SNMP没有向gmail发送电子邮件,但正常的'mail -s'是

时间:2013-04-16 09:51:06

标签: perl email smtp gmail

我写了一个Perl脚本(在机器A上),它将邮件发送到另一台服务器(机器B),然后将其反弹(使用procmail或其他转发机制,具体取决于机器B),然后是脚本机器A测量往返时间。

现在这种情况很好,但由于某种原因,当机器B是GMAIL时,这已停止工作。

以下是我调试它的方式:

  1. 我尝试使用命令行中的“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:~$
    
  2. 接下来,我将'to:'地址更改为我拥有的另一台机器,只是为了查看脚本是否有效。它没有问题地工作到另一台服务器(不是gmail)

  3. 接下来,我将脚本恢复为原始参数。我在端口25上启动了一个tcpdump并运行了脚本,然后使用命令行发送了邮件。在分析Wireshark中的数据包捕获并执行“跟踪TCP流”时,输出如下:

  4. 使用脚本(未送达):

        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中继传递?我已经没有地方可以看了。

    注意:

    1. 在创建此问题之前,我查看了How can I debug my Net::SMTP Perl program?。我没有在互联网上找到任何其他相关信息。

    2. 上面的主机名,电子邮件帐户和IP地址是虚构的 - 这是从输入/输出修改的全部内容

0 个答案:

没有答案