В недавно выпущенной версии ASP.NET 2.0 Microsoft больше не рекомендует использовать пространство имен System.Web.Mail и заменяет его новым пространством имен System.Net.Mail. В этой новой библиотеке представлено много новых функций, но вместе с ними есть и незначительные ошибки в отправке электронных писем.
1. Отправка почты
Прежде чем подробно обсуждать эти небольшие ошибки, давайте посмотрим на пример кода (мы предполагаем, что вы добавили «использование System.Net.Mail» в начале файла):
MailMessage msg = new MailMessage();
msg.From = новый MailAddress(" адрес@домен.com ", "Имя человека");
msg.To.Add(new MailAddress(" [email protected] ", "Имя адресата");
msg.To.Add(new MailAddress(" [email protected] ", "Имя Адресата 2");
msg.Subject = "Тема сообщения";
msg.Body = "Содержимое тела письма";
msg.IsBodyHtml = правда;
msg.Priority = MailPriority.High;
SmtpClient c = новый SmtpClient("mailserver.domain.com");
c.Send(msg);
Приведенный выше код мало чем отличается от реализации в предыдущей версии, за исключением некоторых незначительных изменений в указании сообщения. Вместо того, чтобы создавать адрес самостоятельно, вы можете позволить системе сделать это за вас. Если вы укажете адрес электронной почты и имя, в сообщении автоматически отобразится следующее:
«Имя человека» < [email protected] >
Это «правильный» формат адреса электронной почты. Конечно, вы также можете добавить несколько адресов в наборы To, CC и BCC точно так же, как указано выше. Отправлять большое количество сообщений программным способом таким способом гораздо проще, чем отправлять каждое сообщение по отдельности — достаточно добавить несколько адресов в атрибут BCC, чтобы добиться массовой рассылки.
2. Существующие проблемы
Теперь давайте разберем мелкие ошибки, которые существуют.
Как упоминалось ранее, это новое пространство имен содержит некоторые незначительные ошибки. Во-первых, когда вы отправляете электронное письмо, информация заголовка добавляется полностью строчными буквами. Однако спецификация RFC для электронных писем SMTP не определяет, как следует писать заголовки электронных писем, однако многие программы фильтрации спама ограничивают сообщения электронной почты, заголовки которых написаны с заглавной буквы;
Еще одна ошибка связана с настройками приоритета — с помощью настроек приоритета пользователи могут указать важность сообщения в почтовом клиенте. Из-за формата заголовка электронного письма (преобразованного в нижний регистр) моя почтовая программа (Eudora) не распознает соответствующий флаг приоритета и, следовательно, не помечает это электронное письмо как важное. Хотя это может показаться тривиальным, похоже, нет очевидной причины для перехода на новую версию System.Web.Mail.
Поэтому я продолжу исследовать эту проблему. Если я действительно не смогу найти хорошее средство, я просто вернусь к предыдущему System.Web.Mail, чтобы более эффективно решить вышеуказанную проблему с предупреждением.