Я только что увидел статью об отправке электронной почты в .NET «Отправка электронной почты со страниц asp.net» и увидел, что классы в пространстве имен System.Web.Mail все еще используются. Мы все знаем, что в .NET 1.1 большинство классов в этом пространстве имен используются для отправки электронных писем. Использование статического метода SmtpMail позволяет легко отправлять электронные письма, но поскольку этот класс вызывает операции в Windows 2000 и выше, компонент CDO системы. используется для отправки электронных писем. Независимо от того, какая ошибка, она сообщит о невозможности доступа к объекту CDO.Message или о других исключениях CDO.Message. Мы не можем получить очень подробную информацию об исключении, что создает большие неудобства для нашей отладки. Особенно когда нам нужна проверка Smtp, нам приходится добавлять в MailMessage три определения заголовков писем, что довольно хлопотно. Что ж, в .NET 2.0 функция отправки электронных писем была разработана очень хорошо. Использование классов в пространстве System.Net.Mail позволяет нам очень просто отправлять различные электронные письма. Однако для обеспечения совместимости с исходной версией пространство System.Web.Mail не было удалено, а классы в этом пространстве также были помечены как устаревшие. Если вы используете для компиляции классы .NET 2.0, вы будете иметь статус «Устарело». вместо этого предложено использовать космический класс System.Web.Mail.
Теперь давайте посмотрим, что нужно сделать для отправки электронной почты. Здесь я также нашел в саду статью об отправке электронной почты .NET 2.0 «Компонент отправки электронной почты на основе пространства имен .NET 2.0 System.Net.Mail». отправка и получение почты. В этой статье мы обсуждаем только то, как его отправить. Я чувствую, что на самом деле файл конфигурации не используется. Нам также необходимо самостоятельно указать некоторую информацию об учетной записи Stmp для SmtpClient. Фактически нам нужно настроить только учетную запись Smtp, которую мы будем использовать, через web.config (или app.config):
<configuration>
<system.net>
<mailSettings>
<. smtp from =" [email protected] ">
<network host="smtp.tom.com" пароль=" " port="25" userName="hjf1223" defaultCredentials="false"/>
</smtp>
</mailSettings >
</system.net>
</configuration>
Система конфигурации .NET 2.0 настолько мощна, что мы можем очень просто написать приведенную выше конфигурацию, не обращаясь к какой-либо информации. Как указано выше, атрибут from — это почтовый ящик, из которого вы будете отправлять электронное письмо, а хост — это адрес SMTP-сервера. Излишне говорить, что необходимо указать пароль, порт и имя пользователя. Что касается defaultCredentials, вам нужно обратить внимание. Если нам не нужно, чтобы SMTP-сервер проверял отправляющего пользователя, установите для него значение false, в противном случае установите для него значение true. Большинство современных SMTP-серверов требуют аутентификации пользователя, поэтому обычно установите для него значение true и позвольте ему использовать имя пользователя и пароль. мы настроили проверку того, является ли это законным пользователем.
После того, как файл конфигурации написан, следующим шагом будет вызов программы. После того, как я напишу следующее, чтобы отправить электронное письмо, вы почувствуете себя очень странно. Неужели все так просто? Да, это так просто, давайте посмотрим:
MailMessage m_message = new MailMessage();
From = new MailAddress(" [email protected] ");
m_message.To.Add(new MailAddress(" [email protected] ) "));
m_message.Subject = "Отправить почту с помощью .NET 2.0";
m_message.Body = "Очень просто";
SmtpClient m_smtpClient = new SmtpClient();
m_smtpClient.Send(m_message);
У нас даже нет ни одного лишнего строку кода: Создайте объект MailMessage, затем создайте SmtpClient и используйте его для прямой отправки электронных писем. По сравнению с исходным статическим методом здесь больше нет кода. Некоторые друзья здесь могут спросить? Откуда берется информация об учетной записи SMTP? Фактически, вы можете его отладить. На данный момент атрибуты объекта m_smtpClient — это значения, настроенные в нашем предыдущем файле конфигурации. При перенастройке SmtpClient значение в разделе конфигурации system.net будет автоматически прочитано. Если пользователь настроил информацию smtp, она будет автоматически перенесена в текущий объект SmtpClient, а затем использована для отправки электронных писем. Отправка электронной почты в .NET 2.0 — это очень большая работа, и она очень стабильна.
Описание: Несмотря на то, что в .NET 2.0 использовать System.Web.Mail для отправки электронных писем очень просто, и вы можете получить более подробную информацию об исключениях при возникновении ошибок, но иногда проблемы могут привести вас в замешательство. Чаще всего случается, что если на вашем компьютере установлен антивирусный брандмауэр, вы не сможете отправлять электронные письма, но всплывающее сообщение не позволяет вам диагностировать проблему. Основной эффект заключается в том, что электронное письмо отклоняется. Эта ситуация возникает из-за того, что брандмауэр отказывается использовать порт 25, что приводит к невозможности нормального взаимодействия с SMTP-сервером. Решение состоит в том, чтобы закрыть его. Я считаю, что в Интернете много дел. Еще один момент, на который следует обратить особое внимание, это то, что машина для отправки электронной почты должна быть напрямую подключена к внешней сети. Поскольку компания выходит в Интернет через прокси, это особенно впечатляет. В приведенном выше коде следует отметить еще одну вещь: значение From объекта MailMessage должно совпадать со значением From в файле конфигурации. Кажется, нет необходимости устанавливать его здесь. Вы можете попробовать.
Хорошо, вот код, надеюсь, он вам поможет http://hjf1223.cnblogs.com/archive/2006/07/06/444716.html