私はジャンゴを使用しています。メールが正しいかどうかを確認して、確実に配信されるようにすることは可能ですか (99.99%)? ユーザーが のような電子メールを入力した場合、klsdfksdajkfdn@skjdnf.com
技術的には有効な電子メールですが、実際には存在しません。そのようなメールを検出できますか?
4 に答える
それを実現する唯一の方法は、電子メールを送信したユーザーが確認を求めるリンクを受け取るメカニズムを提供することだと思います。あなたがウェブサイトへの多くのサブスクリプションを持っているように. これにより、ユーザーはそれが有効な電子メールであることを確認し、「信頼」できます。
You cannot check email either before or after sending. But you can do something that will probably cover 80% of cases.
- You can check domain. If for example the email given by user is
foo@gmail.com
first pinggmail.com
. If it does not exist it probably the first red flag that email is wrong. But be careful: probably ICMP is blocked for this domain. - You can listen for auto-reply messages and try to distinguish those that tell you that email does not exist. This is to detect wrong user names while domain name is correct. But be careful: there can be both false negatives (if you recognize out-of-office reply as a email-does-not-exist) or false positives (if you just miss the auto reply because it does not contain expected words or is written in unexpected language)
- If you cannot send email because
IOException
or stuff like this is thrown. But again, be careful: this can mean that the mail server from other side is temporary unavailable or that your computer has connectivity problems.
電子メールの配信不能レポート、または「バウンス メッセージ」のことを意味している場合、それらを追跡することは実際には Django の範囲内ではありません。メッセージ自体はメールであり、メール デーモンによってメールボックスに保存されます。したがって、メール サーバーを適切に設定し、Django 以外のシステムを介して受信するメールを処理する必要があります。
メールの実際の配信を追跡する場合、適切なオプションはありません。「開封確認」は、互換性のない方法で一部の電子メール クライアントによってのみ処理されます。これらはすべて、おそらく電子メール ベースであるため、Web サーバーにアクセスすることはありません。一意の URL を持つ画像 (追跡画像) を埋め込んで、Django で誰がアクセスしたかを追跡することもできますが、これはプライバシーの侵害になるため、gmail などの一部の電子メール クライアントはこれらの画像 (実際にはすべての画像) の読み込みをブロックします。 ) デフォルトで。
メールが正しいかどうかのチェックも同様に複雑です。アドレスのドメイン部分が本物かどうかは、そのドメインのメール サーバーに直接クエリを実行することで簡単に確認できますが、名前が有効かどうかを報告するメール サーバーとそうでないメール サーバーがあります。
断然最善の方法は、単純に確認メールを送信し、ユーザーに一意のリンクをクリックして返信するよう要求することです。これにより、そのメールが間違いなく正しいことを示す Django ページに移動します。実際、電子メール通信を使用するほとんどの Web サイトはまさにこれを行っています。この機能だけが必要で、他のメール/アカウント関連の機能が必要ない場合は、http://code.google.com/p/django-email-confirmation/をご覧ください。
現在の世代の電子メール送信プロトコル (SMTP) を使用しても、信頼できる解決策が得られるとは思えません。試してみようと考えられるほとんどすべてのことは、複雑さと、偽陽性または偽陰性をもたらす「失敗」のケースに悩まされています。
また、メールを送信先のメール サーバーに配信したとしても、それが誰かに配信されるかどうかを知る方法はありません。宛先サーバーが配信できないことを通知することに頼ることさえできません。
現実的には、電子メール アドレスの構文チェックを行い、(おそらく) 電子メール アドレスのドメイン部分の DNS エントリがあるかどうかを確認するのが最善です。
メール配信で行われる難読化の多くは、スパマーを思いとどまらせるために行われていることに注意してください。