SMTPClient
SMTPサーバーにメールを送信するために使用しています。しかし、このSend
方法では、偽の送信者名や電子メールを指定できます。どうすればこれを防ぐことができますか?
4 に答える
送信者の電子メールアドレスとして何を受け入れるかを決定するのはメールサーバーの仕事です。これはポリシーの問題です。
メールクライアントには「真の」電子メールアドレスがないため、クライアントで強制できるものはありません。
送信者名が有効かどうかを判断するのは、SMTPサーバーの役割だと思います。実際、SMTP構成を複製することになるため、コードに導入することはDRYルールに違反します。
http://msdn.microsoft.com/en-us/library/swas0fwc%28v=VS.90%29.aspxでわかるように、SmtpExceptionsをキャッチし、ソフトウェアのユーザーに適切に表示する準備をする必要があります。
SmtpClientではそれについて何もできません。
あなたはあなたのアプリケーションでそれについて何かをすることができます。ユーザーがメールを検証するためにクリックする必要がある確認メールを送信します。
あなたはあなたのSMTPサーバーでそれについて何かをすることができます。MXレコードまたは定義されたSPFポリシーを送信者のドメイン/IPアドレスと照合します。
SMTPはメール転送プロトコルです(名前が示すように)。送信者の認証は担当していません。送信者を認証するには、SMTPがサポートする証明書を使用する必要がありますが、これも転送の手段と同じです。プログラム自体には、証明書を使用して送信者を認証するロジックが必要です。
認証を使用することもできますが、その場合、ユーザー名/パスワードを電子メールアドレスと照合するのはSMTPサーバーになります。