1

別のサーバー (マシン B) にメールを送信する Perl スクリプト (マシン A 上) を作成し、別のサーバー (マシン B) はそれを返送します (マシン B に応じて procmail またはその他の転送メカニズムを使用)。往復時間。

これは長い間正常に機能していましたが、マシン 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 でパケット キャプチャを分析し、「Follow TCP Stream」を実行すると、出力は次のようになります。

スクリプトの使用 (配信されませんでした):

    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アカウントの「SPAM」フォルダも確認しましたが、うまくいきません

コマンドラインを使用するのではなく、Net::SMTP を使用するとメールが配信されないのはなぜですか? 同じ SMTP リレー経由で... 見る場所がなくなってきました。

ノート:

  1. この質問を作成する前に、Net::SMTP Perl プログラムをデバッグするにはどうすればよいですか?を見ました。. インターネット上で他に関連する情報は見つかりませんでした。

  2. 上記のホスト名、電子メール アカウント、および IP アドレスは架空のものです。入力/出力から変更されたものはこれだけです。

4

0 に答える 0