web-dev-qa-db-ja.com

C#ASP.NET TLS経由でメールを送信

[〜#〜] hipaa [〜#〜] 規制に準拠するには、外部サイト(ファイアウォールの外側)から内部Exchangeサーバー(ファイアウォールの内側)に電子メールを送信する必要があります。 Exchange管理者は、TLS暗号化を使用してWebサーバーから電子メールサーバーにメールを送信する必要があると言っています。

私は以前にTLSを使用したことがなく、それにあまり詳しくありません。 Googleで検索すると、多数の有料ライブラリが表示されました。これを実現する.NETネイティブのものはありますか?その場合、どのように構成しますか?そうでない場合、無料またはオープンソースのものはありますか?

現在の構成:

  • ASP.NET C#Webアプリケーション
  • 2.0フレームワーク
  • System.Net.Mailを使用して、SMTP経由で電子メールと添付ファイルを送信する
  • IIS 6.0
60
Joshua

TLS(Transport Level Security)は、HTTP通信の保護においてSSL(Secure Sockets Layer)に取って代わったわずかに広い用語です。そのため、あなたに求められているのはSSLを有効にすることです。

66
David M

SmtpClientには、設定するEnableSslプロパティがあります。

つまり.

SmtpClient client = new SmtpClient(exchangeServer);
client.EnableSsl = true;
client.Send(msg);
29
Martin Clarke

私はあなたとほぼ同じテクノロジーを使用していましたが、WinForms上のOffice 365プラットフォームを介してExchange Serverに接続するためにアプリを使用していました。私もあなたと同じ問題を抱えていましたが、他の人が上で与えたものをわずかに修正したコードを使用して達成することができました。

SmtpClient client = new SmtpClient(exchangeServer, 587);
client.Credentials = new System.Net.NetworkCredential(username, password);
client.EnableSsl = true;
client.Send(msg);

ポート587を使用する必要がありました。これはもちろんTSL上のデフォルトポートであり、認証を行いました。

21
hiFI