C # ASP.NET Отправить электронную почту через TLS - PullRequest
56 голосов
/ 13 января 2010

Чтобы соответствовать правилам HIPAA , нам необходимо отправлять электронную почту с внешнего сайта (вне брандмауэра) на внутренний сервер Exchange (внутри брандмауэра). Наши администраторы Exchange говорят нам, что нам нужно использовать шифрование TLS для отправки почты с веб-сервера на почтовый сервер.

Я никогда не использовал TLS раньше, и я не очень знаком с ним. Поиск в Google as вывел многочисленные платные библиотеки. Есть ли что-то родное для .NET, которое выполнит это? Если да, то как мне это настроить? Если нет, есть ли что-то бесплатное или открытое?

Текущая конфигурация:

  • Веб-приложение ASP.NET C #
  • 2.0 Framework
  • Использование System.Net.Mail для отправки электронной почты и вложений по SMTP
  • IIS 6.0

Ответы [ 3 ]

63 голосов
/ 13 января 2010

TLS (безопасность транспортного уровня) - это несколько более широкий термин, заменивший SSL (Secure Sockets Layer) в защите HTTP-соединений. Поэтому вас просят включить SSL.

28 голосов
/ 13 января 2010

В SmtpClient есть свойство EnableSsl, которое вы должны установить.

т.е.

SmtpClient client = new SmtpClient(exchangeServer);
client.EnableSsl = true;
client.Send(msg);
19 голосов
/ 05 февраля 2013

Я почти использовал ту же технологию, что и вы, однако я использовал свое приложение для подключения к Exchange Server через платформу Office 365 на WinForms. У меня тоже была та же проблема, что и у вас, но я смог решить ее с помощью кода, который немного изменил то, что другие описали выше.

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

Мне пришлось использовать порт 587, который, конечно, является портом по умолчанию для TSL, и он сделал аутентификацию.

...