Знаете ли вы, что можно использовать Office 365 для отправки электронной почты с помощью PowerShell? В этой статье вы узнаете, как отправить электронное письмо с помощью Office 365 Direct Send и командлета Send-MailMessage
PowerShell.
Если вы хотите получить более подробную информацию о том, как отправлять электронную почту с помощью PowerShell, ознакомьтесь с этим подробным руководством по Send-MailMessage.
Direct Send Office 365 против отправки клиентского SMTP
Прежде чем мы слишком глубоко погрузимся в PowerShell, знайте, что существует не только один способ отправки электронной почты через Office 365 с использованием PowerShell. В Office 365 есть два поддерживаемых способа отправки электронной почты. Это Прямая отправка и Отправка клиентом SMTP или Аутентифицированная отправка SMTP.
Аутентифицированная отправка SMTP
Аутентифицированная отправка SMTP – самый простой в настройке вариант. Вы бы выбрали этот вариант, если планируете отправлять электронные письма с устройства или приложения получателям внутри и за пределами вашей организации. Для этого в Office 365 не требуется дополнительных действий.
Этот вариант позволяет использовать любой адрес отправителя. Однако адрес должен быть из одного из ваших проверенных доменов, принятых к использованию.
Для использования Аутентифицированной отправки SMTP вы должны:
- Иметь почтовый ящик пользователя Office 365 (лицензированный). Этот адрес электронной почты будет отображаться как отправитель сообщения.
- PowerShell (или другой клиент) должен иметь возможность разрешить и достичь smtp.office365.com.
- TCP-порт 587 или 25 должен быть открыт в Office 365 с клиента.
Прямая отправка
Немного увеличивая сложность, есть опция Прямая отправка. Как и SMTP-аутентифицированная отправка, Прямая отправка позволяет использовать любой адрес отправителя. Кроме того, адрес from должен быть одним из ваших подтвержденных доменов.
Основное отличие между Прямой отправкой и SMTP-аутентифицированной отправкой заключается в том, что не разрешаются внешние получатели. Если вам нужно отправить сообщение получателям вне вашей организации, Прямая отправка не подойдет.
Прямая отправка имеет несколько требований/рекомендаций:
- Адрес отправителя не обязательно должен быть действительным ящиком. Но он необходим, если вы планируете получать NDR или ответы, используя этот адрес.
- TCP-порт 25 открыт от вашего клиента к Office 365.
- Устройство должно быть способно разрешить и достичь вашего URL конечной точки MX (например, yourdomain-com.mail.protection.outlook.com)
- A static public IP address. This is to update your SPF record and avoid your messages getting flagged as spam (optional but recommended)
Если вы не знаете, как найти URL конечной точки MX, вот быстрый учебник:
- Войдите в Портал администратора Office 365.
- Нажмите Настройка (1), выберите Домены (2), щелкните Имя домена (3), скопируйте MX Адрес точки для адресации или значение (4).

SMTP-аутентифицированная отправка
Первый метод отправки электронной почты – это отправка через клиент SMTP или аутентифицированную отправку SMTP. Используя командлет Send-MailMessage
в PowerShell, мы можем указать все параметры, необходимые для отправки почты через Office 365.
Ниже приведен фрагмент, который можно использовать для отправки электронной почты с помощью этого метода.
Сначала вам нужно определить объект PowerShell PScredential, затем предоставить все параметры, которые нужны для Send-MailMessage
.
При запуске указанного выше кода вы должны получить электронное письмо, полученное внутренним получателем (вашдомен.com) и внешним доменом (невашдомен.com).


Прямая отправка (требуется TLS)
Аналогично SMTP Authenticated Submission, вы можете использовать практически те же параметры для Send-MailMessage
. Однако на этот раз получателями To
будут только внутренние получатели.
Также обратите внимание, что учетные данные PSCredential не были необходимы.

Краткое изложение
Вы видите, что Office 365 предоставляет два различных варианта отправки электронной почты. В этой статье мы использовали PowerShell в качестве примера для демонстрации обоих вариантов. Но вам не обязательно использовать PowerShell. Пока ваше приложение или язык программирования поддерживает аутентификацию TLS, вы можете использовать любой метод, который вам нравится.
Дополнительное чтение
Source:
https://adamtheautomator.com/office-365-direct-send/