2016-04-25 14 views
1

MAILの調査(数多くの質問があります)の数時間後、私は完全に答えを見つけることができませんでした私に答えます。FROMアドレスが指定されていない場合は、「デフォルト」のFROMアドレスを取得します。.NET.Mail

私のアプリケーションの1つとして、SMTP経由で送信メールを処理するSystem.Net.Mailのメーリングクラスライブラリを構築しています。 FROMアドレスはオプションのパラメータです。指定されていない場合、コードはFROMアドレスを設定/処理する必要があります。

すべてのメールクライアントが同じではないので、正しいFROMアドレスを取得するものを作成したいと思っています。

調査の結果、UserPrincipal.Current.EmailAddressを使用してこれを実現できることが判明しましたが、EmailAddressの値が常にActive Directoryに存在するとは限りません。

質問は、いつもFROMアドレスを取得する方法はありますか、またはこの元に戻すことはできますか?それとも、OutlookやGmailのようなよく使われるメールクライアントに制限するだけですか?

+0

現実的に "正しい"電子メールアドレスが何であるかは分からない。例えば、私のラップトップを好きなだけ掃除したり、電子メールアプリケーションを実行したりすることはできない。しかし、私はいくつかの電子メールアドレスを持っていますが、それは私が好むものですが、私はそれがどれだけあるかを知っています。 ADのルックアップは、ローカル交換サーバーが使用されているときに最も効果的な傾向がありますが、常にそうであるとは限りません。 – BugFinder

答えて

2

プロダクション用に設定されているほとんどのSMTPサーバーは、「スプーフィングから」を許可していません。つまり、FROMアドレスはSMTPにログインするためのアドレスにする必要があります。その練習を必要とするSMTP仕様には何もありませんが、スパマーの存在があります。

明示的に設定されていない場合、ActiveDirectoryから電子メールアドレスを取得することもできます。 ActiveDirectoryはドメイン内に設定されているため、電子メールアドレスはuserId + '@' + activeDirectoryDomainとなります。これが問題になる場所は、第三者からのクレームベースの認証を使用しており、第三者が電子メールクレームを入力していない場合です。たとえば、Facebook認証とGoogle認証ではメールアドレスが提供され、Twitter認証では認証されません。

すべての場合、システムのデフォルトのメールアドレスが必要です。 SMTPサービスを管理する人と調整する必要がありますが、発信専用の電子メールアドレスは「返信なし」に設定することができます。あなたが他の方法でそれを派生できないなら、それはあなたの最終的な選択肢になります。

+0

すばらしい説明!はるかに明確になります。私はたぶんFROMアドレスをオプションではなくするでしょう。ありがとうございました。 – Nicolas

関連する問題