1

この質問は Amazon AWS フォーラムに投稿しましたが、ここでより迅速で適切な回答が得られるかもしれないと考えました。2回見たらごめんなさい。

私の会社では、Amazon AWS SMTP サーバーを使用して、Java ベースの Web インターフェイス経由で E メールを送信しています。これはアプリケーションのほんの一部であり、ユーザーが他のユーザーをアプリケーションに招待できるようにすることを目的としています。

ごくまれに、特定の電子メール アドレスに招待状が届かないことがわかりました。当初は、メール アドレスのハイフンに関連していると考えていましたが、必ずしもそうではないと判断しました。しばらくの間、自分のメール ドメインを使用してこの問題のトラブルシューティングを行ってきましたが、次の 2 つのメール アドレスは、AWS SMTP サーバー (email-smtp.us-east-1.amazonaws.com) を使用して送信されたメールを受信しないことがわかりました。しかし、送信プロセス中にエラーは報告されていません。メールが届かないだけです。2 番目のリストは、当社のシステムを使用して送信された招待状を常に受信する同様の電子メール アドレスを示しています。最初のリストのアドレスはメールを受信しないことに注意してください。デプロイされたすべてのインスタンスから何度も何度も試しました.

電子メールを受信しないアドレス:

  • jeremygoodell@jeremygoodell.com
  • jeremy-goodell@jeremygoodell.com

メールを受信するアドレス:

  • test@jeremygoodell.com
  • jeremy-goodell@pinkymcberry.com
  • jeremy-goodell@hotmail.com
  • jeremygoodelk@jeremygoodell.com

この問題が発生する電子メール アドレスはほとんどありません。問題を示している自分のドメインで 2 つを見つけることができたのは、やや幸運でした。もちろん、これがスパム フィルタリングとは何の関係もないことは確認済みです。

アプリケーションは、play フレームワークを使用して Java で記述されています。Play は内部で Apache Commons Email ライブラリを使用します。詳細については、http: //www.playframework.com/documentation/1.1/emails を参照してください

トラブルシューティングの作業中に行った手順の一部を次に示します。

1) 別の SMTP サーバーで試してください(個人の ISP SMTP -- smtp.gvtc.com を使用) --この SMTP サーバーを使用すると、すべてのアドレスが電子メールを受信します。これにより、AWS SMTP サーバーに固有の問題として切り分けられるようです。

2) 自分の AWS アカウントをセットアップし、このアカウントの SMTP 設定を使用します (問題のアドレスを確認した後)。自分の AWS SMTP アカウント設定を使用すると、まったく同じ問題が発生します。これは、問題が当社の AWS アカウントに固有のものではないことを示しているようです。

3) 再生メールのデバッグ設定をオンにします (構成ファイルで mail.debug=true)。システムによって送信された各電子メールについて、コンソールに大量の情報が表示されますが、適切なアドレスに送信された電子メールと不適切なアドレスに送信された電子メールにまったく違いはありません。エラーの表示は一切ありません。

これは、届かなかった電子メールの 1 つのログの内容です。これは、私が自分用にセットアップした AWS サーバーを使用していることに注意してください。送信元のメールアドレスが違うだけで、自社のAWS SMTPサーバーを使っている場合と全く同じように見えます。実際の電子メールの内容は HTML であり、機密情報であり、問​​題とは関係がないため、削除しました。

May 15, 2013 8:44:47 AM play.Logger info
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems,
 Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "email-smtp.us-east-1.amazonaws.com", port 465, isSSL false
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-376766033
DEBUG SMTP: connected to host "email-smtp.us-east-1.amazonaws.com", port: 465

EHLO 0.1.0.5
250-email-smtp.amazonaws.com
250-8BITMIME
250-SIZE 10485760
250-AUTH PLAIN LOGIN
250 Ok
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "SIZE", arg "10485760"
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "Ok", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
AUTH LOGIN
334 VXNlcm5hbWU6
QUtJQUk3WDNURUI0NEVKNlRSU1E=
334 UGFzc3dvcmQ6
QXJwZjl4eU1FTVc1WFNFR3ZxVXVPODNhRjFkcG8xMFpSeURXY0ZsNGVHQXM=
235 Authentication successful.
DEBUG SMTP: use8bit false
MAIL FROM:<jeremy-goodell@hotmail.com>
250 Ok
RCPT TO:<jeremygoodell@jeremygoodell.com>
250 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   "jeremygoodell@jeremygoodell.com" <jeremygoodell@jeremygoodell.com>
DATA
354 End data with <CR><LF>.<CR><LF>
Date: Wed, 15 May 2013 08:44:47 -0500 (CDT)
From: "jeremy-goodell@hotmail.com" <jeremy-goodell@hotmail.com>
Reply-To: "jeremy-goodell@hotmail.com" <jeremy-goodell@hotmail.com>
To: "jeremygoodell@jeremygoodell.com" <jeremygoodell@jeremygoodell.com>
Message-ID: <2322287.7.1368625487826.JavaMail.UGOODJ3@SAOTXWL-9X913M1>
Subject: Please join the ACT Aspire Hari AV test delivery portal
MIME-Version: 1.0
Content-Type: multipart/mixed;
        boundary="----=_Part_6_16196755.1368625487826"

------=_Part_6_16196755.1368625487826
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

    >>>> HTML EMAIL BODY REMOVED <<<<

------=_Part_6_16196755.1368625487826--
.
250 Ok 0000013ea86fb2de-0bd70205-8e9a-4042-972f-ad94b28c3101-000000
QUIT
221 Bye
4

1 に答える 1

2

ここで、問題の解決策であることが判明したことをフォローアップします。Amazon AWS SMTP サービスは、過去 14 日間に返送された E メールアドレスのリストである「14 日間抑制リスト」を維持しています。Amazon SMTP サービス経由で送信された E メールは、抑制リストのアドレスに送信しようとすると失敗します。残念ながら、彼らはエラーを報告しませんが、代わりに「配信不能」の返信を送信者に送信します。したがって、自動送信サービスを使用している場合は、決してわかりません。

たまたま見つけたのは、自分の AWS SMTP サーバーをセットアップしたときに、自動メールの送信者として自分のメールアドレスの 1 つを入力したためです。その電子メール アカウントにログインすると、対象の電子メールが抑制リストにあることを説明する配信不能メッセージが表示されました。

Amazon では、E メール サービス コンソールにログインして、禁止リストから E メール アドレスを削除することを許可しています。電子メール アドレスを入力して [削除] をクリックするだけで、そのアドレスはすぐにリストから削除されます。抑制リストにあるメール アドレスを確認する方法はありませんが、必要なアドレスは削除できます。

したがって、私の電子メールの失敗の場合、電子メールの作成が完了する前に電子メールを送信しようとしたため、バウンスが発生したと考えられます。メール アドレスが返送されると、抑制リストに登録されます。次の 14 日間、AWS SMTP サーバー (私のものだけでなく) 経由で送信された電子メールはすべて失敗しました。14 日後 (どうやら)、次のバウンスが発生するまで、電子メール アドレスは抑制リストから削除されます。

この Amazon ソフトウェアは非常に新しく、実際には 5 月初旬にこの Suppression List サービスを発表したばかりです。したがって、彼らはまだいくつかのねじれを解決する必要があるかもしれません. この特定の問題は、私たちのような自動送信者にとってやや深刻な問題を引き起こしているようです. すべてのバウンスは、私たちの制御を超えた理由で時折発生します.

于 2013-05-20T15:46:00.907 に答える