16

Javaメールを使って、メールを送って状況を確認したいです。考えられるステータスは次のとおりです。

  • ハードバウンス: メールサーバーが見つかりません
  • ソフトバウンス: メールサーバーは見つかりましたが、アカウントが見つかりません
  • 成功

上記の方法で電子メールを送信して、配信の試みに関するフィードバックを得ることができますか?

編集:回答者は、 ListNannyと同じ機能を提供する Java ライブラリを探すことを提案しました。私は周りを検索しましたが、何も見つかりませんでした。そのようなライブラリが存在するかどうか、何か考えはありますか?

4

9 に答える 9

5

これを確実に、または一貫して行うことはできません。ローカル メール サーバーがそれを企業の送信メール サーバーに渡し、そのサーバーが送信しようとしたときにバウンスした場合はどうなりますか? メール サーバーが他のメール サーバーと通信できず、メッセージが 4 日後にタイムアウトした場合はどうなりますか?

于 2008-09-29T19:16:27.990 に答える
4

HTML メールを送信する場合、1 ピクセルの透明な画像をメールに埋め込むことができます。画像の URL は、実際には画像を返すサーブレットを参照します。URL には、パラメーターとしてある種のメッセージ ID も含まれます。この背後にある考え方は、ユーザーがメッセージを読むと、画像が表示され、サーブレットがトリガーされ、メッセージが読み取られたことをデータベースに書き込むというものです。

于 2008-09-29T20:32:51.583 に答える
3

必要なのは、エンベロープ SMTP 送信者を、NDR メッセージを監視しているアドレスに設定することです。受信した電子メールを解析し、何が問題だったのかを突き止める必要があります。これは一般的にメーリング リストで行われ、ListNannyのような製品がメッセージの処理に使用されます (これは .NET 製品ですが、Java に相当するものがあると確信しており、自分で作成することもできます)。

エンベロープの「差出人」は、メッセージの「差出人」アドレスとは異なります。これは、コードと MTA の間で行われる SMTP 会話の一部です。すべての NDR がそのアドレスに送信されます。

于 2008-09-29T19:28:10.990 に答える
1

http://www.mailcounter.info無料サービスを使用して、電子メールが読み取られたかどうか、およびユーザーが何回読み取ったかを確認できます。その無料サービス。

于 2009-01-23T09:35:24.043 に答える
1

サーバーから取得した情報(取得した場合)に依存しないでください。

現在、多くのメールサーバーは、受信者が作成するセキュリティホールのために、受信者が存在するかどうかを示さないように設定されています。(たとえば、特定のドメインが電子メールアドレスの存在を報告している場合(「はい」/「いいえ」)、ハッカーはサーバーへの辞書攻撃を解き放ち、すべての有効なユーザーを特定するため、即座にスパムが発生します。リスト。

于 2008-09-29T19:41:14.967 に答える
1

あなたがすべきことは、受信者の電子メールの MX レコード (電子メール アドレスのドメイン部分の DNS MX クエリ) を実際にチェックし、解決された SMTP サーバー経由でメッセージを送信することです。

このように、MX レコードが見つからない場合は「ハード バウンス」を取得し、見つかったが送信メソッドが例外をスローした場合は「ソフト バウンス」を取得し、それが成功した場合は「成功」を取得します。 "。

dnsjava プロジェクトを使用して MX レコードを解決できます。 http://www.dnsjava.org/

于 2010-05-25T18:24:49.487 に答える
1

メールサーバーの検索と接続: 簡単。アカウントの確認: 可能です。ただし、そもそもメールサーバーにアクセスできるかどうかによって異なります。接続試行を拒否する場合があります (たとえば、ネットワークがブラックリストに登録されているため)。

最も複雑なことは、「成功」と呼ばれるものです。

簡単な答え: いいえ。

長い回答: 理論的には可能ですが、ステータスを知るには数日ではないにしても数時間待たなければなりません。グレーリスト、ホワイトリスト、スパムブロックのメールサーバーを使用すると、多くの場合、配信を数回試行した後にのみメールを受け入れます。彼らが最終的に配達したか、メールをあきらめたときにのみ、配達の成功について知ることができます. また、メール サーバーの負荷によっては、メールの送信が任意の時間延期される場合があります。

于 2008-09-29T19:22:07.603 に答える
1

私は特に Javamail に詳しくありませんが、「成功」でさえ成功ではないかもしれません。

ハード障害とソフト障害の定義は、チェックするのに十分単純でなければなりません。サーバーが見つからない場合は難しいです。接続してサーバーが「メールボックスが見つかりません」と言った場合、それは「ソフト」です。しかし、サーバーがメッセージを受け入れて、後でバウンスした場合はどうなるでしょうか? 多くのフロントエンド サーバーは、設計または必要性 (「実際の」バックエンド サーバーのフロント エンド リレー) により、不明なメッセージを受け入れます。メッセージが無効なアドレスに宛てられていることが後で判明した場合、メッセージは送信者に返送されます。その場合、送信が実際には成功していないのに、送信の「成功」を報告したことになります。

メッセージに埋め込まれている何らかの「ここをクリック」なしでは、配信を保証することはほぼ不可能です。

于 2008-09-29T19:22:48.863 に答える