# Скрипт на powershell отправки сообщения на внешнюю почту с авторизацией smtp.yandex.ru

```powershell
#Адрес сервера SMTP для отправки
$serverSmtp = "smtp.yandex.ru"
#Порт сервера
$port = 587
#От кого
$From = "login@yandex.ru"
#Кому
$To = "myMail@mail.ru"
#Тема письма
$subject = "Письмо с вложением"
#Логин и пароль от ящики с которого отправляете login@yandex.ru
$user = "login"
$pass = "12345678"
#Путь до файла
$file = "C:\arhive.zip"
#Создаем два экземпляра класса
$att = New-object Net.Mail.Attachment($file)
$mes = New-Object System.Net.Mail.MailMessage
#Формируем данные для отправки
$mes.From = $from
$mes.To.Add($to)
$mes.Subject = $subject
$mes.IsBodyHTML = $true
$mes.Body = "<h1>Тестовое письмо</h1>"
#Добавляем файл
$mes.Attachments.Add($att)
#Создаем экземпляр класса подключения к SMTP серверу
$smtp = New-Object Net.Mail.SmtpClient($serverSmtp, $port)
#Сервер использует SSL
$smtp.EnableSSL = $true
#Создаем экземпляр класса для авторизации на сервере яндекса
$smtp.Credentials = New-Object System.Net.NetworkCredential($user, $pass);
#Отправляем письмо, освобождаем память
$smtp.Send($mes)
$att.Dispose()
```

## Класс System.Net.Mail.MailMessage

### Конструкторы

| Имя | Описание |
| --- | --- |
| MailMessage() | Инициализирует пустой экземпляр класса **MailMessage**. |
| MailMessage(MailAddress, MailAddress) | Инициализирует новый экземпляр класса **MailMessage**, используя указанные объекты класса **MailAddress**. |
| MailMessage(String, String) | Инициализирует новый экземпляр класса **MailMessage**, используя указанные объекты класса **String**. |
| MailMessage(String, String, String, String) | Инициализирует новый экземпляр класса **MailMessage** |

### Свойства

| Имя | Описание |
| --- | --- |
| AlternateViews | Возвращает коллекцию вложений, используемую для хранения альтернативных форм тела сообщения. |
| Attachments | Возвращает коллекцию вложений, используемую для хранения данных, вложенных в это сообщение электронной почты. |
| Bcc | Возвращает коллекцию адресов, содержащую получателей скрытой копии (BCC) данного сообщения электронной почты. |
| Body | Получает или задает основную часть сообщения. |
| BodyEncoding | Получает или задает кодировку, используемую для кодирования тела сообщения. |
| BodyTransferEncoding | Получает или задает кодирование передачи, используемое для кодирования тела сообщения. |
| CC  | Возвращает коллекцию адресов, содержащую получателей копии (CC) данного сообщения электронной почты. |
| DeliveryNotificationOptions | Получает или задает уведомления о доставке данного сообщения электронной почты. |
| From | Получает или задает адрес отправителя данного сообщения электронной почты. |
| Headers | Возвращает заголовки электронной почты, передаваемые с данным сообщением. |
| HeadersEncoding | Получает или задает кодировку, используемую для пользовательских заголовков данного сообщения электронной почты. |
| IsBodyHtml | Получает или задает значение, показывающее, имеет ли основная часть почтового сообщения формат HTML. |
| Priority | Получает или задает приоритет данного сообщения электронной почты. |
| ReplyTo | Устаревшее. Получает или задает адрес ReplyTo для данного почтового сообщения. |
| ReplyToList | Получает или задает список адресов для ответа для данного сообщения электронной почты. |
| Sender | Получает или задает адрес отправителя данного сообщения электронной почты. |
| Subject | Получает или задает строку темы для данного сообщения электронной почты. |
| SubjectEncoding | Получает или задает кодировку, используемую для темы данного сообщения электронной почты. |
| To  | Возвращает коллекцию адресов, содержащую получателей данного сообщения электронной почты. |

### Методы

| Имя | Описание |
| --- | --- |
| Dispose() | Освобождает все ресурсы, используемые объектом MailMessage. |
| Dispose(Boolean) | Освобождает неуправляемые ресурсы, используемые объектом MailMessage, а при необходимости освобождает также управляемые ресурсы. |
| Equals(Object) | Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)Finalize |
| Finalize | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции по очистке перед тем, как объект будет утилизирован сборщиком мусора. (Унаследовано от Object.) |
| GetHashCode | Играет роль хэш-функции для определённого типа. (Унаследовано от Object.) |
| GetType | Возвращает объект класса Type для текущего экземпляра. (Унаследовано от Object.) |
| MemberwiseClone | Создает «поверхностную» копию текущего объекта. (Унаследовано от Object.) |
| ToString | Возвращает строковое представление текущего объекта. (Унаследовано от Object.) |

## Класс Net.Mail.SmtpClient

### Конструкторы


| Имя | Описание |
| --- | --- |
| SmtpClient() | Инициализирует новый экземпляр класса SmtpClient, используя параметры файла конфигурации. |
| SmtpClient(String) | Инициализирует новый экземпляр класса SmtpClient, который отправляет электронную почту с помощью указанного сервера SMTP. |
| SmtpClient(String, Int32) | Инициализирует новый экземпляр класса SmtpClient, который отправляет электронную почту с помощью указанного сервера SMTP и порта. |

### Свойства

| Имя | Описание |
| --- | --- |
| AlternateViews | Возвращает коллекцию вложений, используемую для хранения альтернативных форм тела сообщения. |
| ClientCertificates | Указывает, какие сертификаты следует использовать для установки SSL-подключения. |
| Credentials | Возвращает или задает учетные данные, используемые для проверки подлинности отправителя. |
| DeliveryFormat | Получает или задает формат доставки, используемый SmtpClient для отправки электронной почты. |
| DeliveryMethod | Указывает, как будут обрабатываться исходящие сообщения электронной почты. |
| EnableSsl | Указывает, использует ли SmtpClient протокол SSL для шифрования подключения. |
| Host | Возвращает или задает имя или IP-адрес хоста, используемого для SMTP-транзакций. |
| PickupDirectoryLocation | Возвращает или задает папку, в которой приложения сохраняют почтовые сообщения для обработки локальным SMTP-сервером. |
| Port | Возвращает или задает порт, используемый для SMTP-транзакций. |
| ServicePoint | Возвращает сетевое подключение, используемое для передачи сообщения электронной почты. |
| TargetName | Получает или задает имя поставщика услуг (SPN) для проверки подлинности при использовании расширенной защиты. |
| Timeout | Возвращает или задает значение, указывающее промежуток времени, после которого для синхронного вызова Send истечет время тайм-аута. |
| UseDefaultCredentials | Возвращает или задает значение Boolean, которое управляет отправкой учетных данных DefaultCredentials вместе с запросами. |

### Методы

| Имя | Описание |
| --- | --- |
| Dispose() | Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient. |
| Dispose(Boolean) | Отправляет сообщение QUIT на SMTP-сервер, правильно завершает TCP-подключение и освобождает все ресурсы, используемые текущим экземпляром класса SmtpClient, и при необходимости освобождает управляемые ресурсы. |
| Equals(Object) | Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.) |
| Finalize | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции по очистке перед тем, как объект будет утилизирован сборщиком мусора. (Унаследовано от Object.) |
| GetHashCode | Играет роль хэш-функции для определённого типа. (Унаследовано от Object.) |
| GetType | Возвращает объект класса Type для текущего экземпляра. (Унаследовано от Object.) |
| MemberwiseClone | Создает «поверхностную» копию текущего объекта. (Унаследовано от Object.) |
| OnSendCompleted | Создает событие SendCompleted. |
| Send(MailMessage) | Отправляет указанное сообщение на сервер SMTP для доставки. |
| Send(String, String, String, String) | Отправляет указанное сообщение электронной почты на сервер SMTP для доставки. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String. |
| SendAsync(MailMessage, Object) | Отправляет указанное сообщение электронной почты на сервер SMTP для доставки. Этот метод не блокирует вызывающий поток и позволяет вызывающей стороне передать объект в метод, вызванный после завершения операции. |
| SendAsync(String, String, String, String, Object) | Отправляет сообщение электронной почты на сервер SMTP для доставки. Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String. Этот метод не блокирует вызывающий поток и позволяет вызывающей стороне передать объект в метод, вызванный после завершения операции. |
| SendAsyncCancel | Отменяет асинхронную операцию отправки сообщения электронной почты. |
| SendMailAsync(MailMessage) | Отправляет указанное сообщение SMTP-серверу для доставки в качестве асинхронной операции. |
| SendMailAsync(String, String, String, String) | Отправляет указанное сообщение SMTP-серверу для доставки в качестве асинхронной операции. . Отправитель, получатели, тема и основная часть сообщения указываются с помощью объектов String. |
| ToString | Возвращает строковое представление текущего объекта. (Унаследовано от Object.) |

### События

| Имя | Описание |
| --- | --- |
| SendCompleted | Происходит после завершения асинхронной операции по отправке электронной почты. |