c отправить письмо на email

Отправка почты. SmtpClient

Для отправки почты в среде интернет используется протокол SMTP (Simple Mail Transfer Protocol). Данный протокол указывает, как почтовые сервера взаимодействуют при передаче электронной почты.

Для работы с протоколом SMTP и отправки электронной почты в .NET предназначен класс SmtpClient из пространства имен System.Net.Mail .

Этот класс определяет ряд свойств, которые позволяют настроить отправку:

Host : smtp-сервер, с которого производится отправление почты. Например, smtp.yandex.ru

Port : порт, используемый smp-сервером. Если не указан, то по умолчанию используется 25 порт.

Credentials : аутентификационные данные отправителя

EnableSsl : указывает, будет ли использоваться протокол SSL при отправке

Еще одним ключевым классом, который используется при отправке, является MailMessage . Данный класс представляет собой отправляемое сообщение. Среди его свойств можно выделить следующие:

Attachments : содержит все прикрепления к письму

Body : непосредственно текст письма

From : адрес отправителя. Представляет объект MailAddress

To : адрес получателя. Также представляет объект MailAddress

Subject : определяет тему письма

IsBodyHtml : указывает, представляет ли письмо содержимое с кодом html

Используем эти классы и выполним отправку письма:

Для отправки применяется метод Send() , в который передается объект MailMessage.

Также мы можем использовать асинхронную версию отправки с помощью метода SendMailAsync :

Очень часто приходится сталкиваться с отправкой электронных писем из программного кода. За примерами далеко ходить не нужно.

Данная статья является подсказкой и не открывает ничего нового, но прежде чем её писать, посмотрел похожее в интернете и был довольно удивлён тому, что почти везде предлагают или не работающее или устаревшее решение, либо просто написано неграмотно.

Первое, что не стоит делать по этим примерам – это использовать System.Web.Mail, который уже давно устарел, а начиная с Visual Studio 2010 библиотеку System.Web даже и не добавить, не зная полного пути к соответствующей DLL.
Вместо него предлагается использовать библиотеку System.Net.

Читайте также:  git удалить локальный коммит

Итак, самое простое, оно же самое важное и часто использующееся — это отправка письма со своего почтового сервера, на котором настроен SMTP-клиент. Как вы понимаете, сервер может быть как и тот, на котором работает приложение, так и удалённый, на котором у вас есть права отправлять письма без дополнительной авторизации.

Пример кода для отправки письма с локальной машины:

С использованием почтовых служб, таких как Gmail, Yandex, Mail.ru и т.д. всё то же самое, только добавляются параметры с авторизацией.

c отправить письмо на email
SMTP-сервер: smtp.gmail.com
Порт: 587

c отправить письмо на email
SMTP-сервер: smtp.yandex.ru
Порт: 25

c отправить письмо на email
SMTP-сервер: smtp.mail.ru
Порт: 25

Если у вас почтовый ящик на сервисе mail.ru заканчивается на inbox.ru, list.ru или bk.ru, то соответственно меняется и адрес SMTP-сервера (smtp.inbox.ru, smtp.list.ru и smtp.bk.ru).

Как вы видите, для того, чтобы использовать любой другой почтовый сервис в ваших программах, необходимо только выяснить адрес SMTP-сервера и порт, а также правила авторизации.

Необходимо также помнить, что практически все сторонние почтовые сервисы накладывают лимиты на количество отправленных писем в период времени.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

c отправить письмо на emailСегодня мы поговорим о том, как отправить email, используя язык программирования C#. В .Net FrameWork, начиная с версии 1.1, есть встроенные средства по отправке писем.

Классы по работе с email находятся в пространстве имен System.Net.Mail. Они реализуют такие полезные функции, как:

  • отправка почты, в том числе нескольким адресатам;
  • отправка копии и скрытой копии письма;
  • вложение файла к письму;
  • использование HTML-кода в теле письма.
Читайте также:  iwl250 как снять защиту

В данной статье рассмотрим основные классы работы с mail и напишем небольшой код отправки письма C# mail send. В качестве SMTP-сервера будем использовать сервер GMail. Он использует SSL протокол, обеспечивающий безопасный способ соединения между клиентом и сервером.

В C# отправка почты в основном реализуется двумя классами: MailMessage и SmtpClient. MailMessage содержит сведения о заголовке и теле письма, отправителе и получателях. SmtpClient хранит информацию об SMTP-сервере: хост, порт, наличие SSL и т.д.

C# mail send

Рассмотрим основные классы работы с письмами в C#. Пространство имен System.Net.Mail содержит несколько нужных нам классов:

MailMessage

Основной класс работы с письмами в .Net Framework. Мы будем использовать следующие свойства класса:

  • From: адрес отправителя в виде экземпляра класса MailAddress;
  • To: коллекция адресов получателей;
  • Subject: тема или заголовок письма типа String;
  • Body: Тело письма, т.е. само сообщение;
  • Attachments: коллекция присоединенных к письму файлов. При необходимости вложить в письмо файл, нужно добавить его Attachment в список присоединенных файлов Attachments.

SmtpClient

Позволяет отправлять email по протоколу SMTP (Simple Mail Transfer Protocol). Воспользуемся SMTP-сервером от Google smtp.gmail.com. Нам понадобятся следующие свойства класса:

  • Host: имя SMTP-сервера для отправки email;
  • Port: порт, используемый для SMTP-транзакций. По умолчанию равен 25, что соответствует незашифрованному каналу. Google свои каналы шифрует, поэтому мы будет использовать порт 587;
  • EnableSsl: показывает, используется ли SSL протокол для шифрования трафика. Google требует протокол SSL, поэтому установим это свойство в True;
  • Credentials: предоставляет учетные данные для проверки подлинности на основе пароля;
  • DeliveryMethod: метод обработки исходящих сообщений электронной почты. У нас этот параметр будет равен SmtpDeliveryMethod.Network, что означает передачу email по сети на SMTP-сервер.
Читайте также:  1с поместить файл в хранилище значений

Мы будем использовать метод Send для отправки нашего письма на SMTP-сервер для дальнейшей доставки.

Attachment

Класс Attachment реализует присоединение файла к письму. Если хотите переслать файл, нужно добавить Attachment вашего файла в список MailMessage.Attachments. В качестве параметра в класс Attachment можно передать имя файла или его Stream.

При отправке письма с присоединенным файлом желательно сжимать его в архив. Это увеличит скорость передачи. К тому же, если передать в одном письме тысячи файлов по отдельности, то получатель увидит не очень приятное зрелище: огромный список присоединенных файлов. Я использую для сжатия бесплатный архиватор 7-zip. Здесь можно посмотреть пример добавления в архив 7-zip на C#.

Оцените статью
Все о Windows 10
Добавить комментарий