PowerShell: Обработка запросов и рассылка email
На работе появилась задача обрабатывать текстовые файлы запросов и рассылать их содержимое пользователям. Посмотрим на решение этой задачи…
Шаблон
Шаблон текстового файла, который обработает скрипт и отправит email по указанным в шаблоне параметрам:
Скрипт
Скрипт обрабатывает содержимое текстовых файлов определённого шаблона и отправляет содержимое этих файлов на email пользователям.
Скрипт состоит из следующих компонентов:
app.mail.request.ini- файл с настройками.app.mail.request.ps1- приложение.task.mail.request.xml- задача для Windows Task Scheduler.
Установка
Настройка
Файл настройки app.mail.request.ini представляет собой простой файл .ini, содержащий в себе приватные параметры.
Параметры
Server- IP-адрес сервера.Port- SMTP-порт сервера.User- имя пользователя для SMTP-аутентификации.Password- пароль пользователя для SMTP-аутентификации.
Приложение
Приложение app.mail.request.ps1 забирает параметры из файла настроек, а также обрабатывает значения, переданные в терминале.
Параметры
Request- путь к файлам запросов.From- поле “От”.Cc- поле “Копия”.Bcc- поле “Скрытая копия”.Priority- приоритет email. Значения:Low- низкий приоритет.Normal- стандартный приоритет.High- высокий приоритет.
LogPath- путь к файлу журнала. По умолчанию:${PSScriptRoot}\log.mail.request.txt.LogSize- размер файла журнала. Файл журнала будет помещён в ZIP-архив при превышении этого значения. По умолчанию:50MB.Attach- если указано, файл запроса будет прикреплён к email.Save- если указано, файл запроса не будут удалён после отправки email.HTML- если указано, email будет иметь разметку HTML.SSL- если указано, подключение к SMTP-серверу будет осуществляться при помощи протокола SSL.BypassCertValid- если указано, проверка валидности сертификата при подключении к SMTP-серверу через протокол SSL будет отключена.
Логирование
Для логирования используются функции Start-Transcript и Stop-Transcript. Журнал выполнения сохраняется в директории скрипта в файле log.mail.request.txt.
Примеры
- Скрипт обрабатывает запросы
*.txtв директорииC:\Request\и рассылает письма отrequest@example.com:
- Скрипт обрабатывает запросы
*.txtв директорииC:\Request\и рассылает письма отrequest@example.com, а также отправляет копии писем наmail@example.netиmail@example.biz:
- Скрипт обрабатывает запросы
*.txtв директорииC:\Request\и рассылает письма отrequest@example.com, а также отправляет скрытые копии писем наmail@example.netиmail@example.biz:
- Скрипт обрабатывает запросы
*.txtв директорииC:\Request\и рассылает письма отrequest@example.comпри этом подключаясь к SMTP-серверу через SSL с обходом проверки валидации сертификата:
Категории
Смотрите также
- PowerShell: Отправка email из терминала
- Dovecot: Полнотекстовый поиск
- iRedMail: Миграция на новые компоненты
- Уведомления от Windows Server Backup
- Удаление временных данных ОС Windows
- iRedMail: Управление белым и чёрным списками
- Работа с сетевыми интерфейсами в PowerShell
- Работа с переменной среды окружения PATH
- Автоматическая настройка Windows Server 2022 под рабочую станцию
- Восстановление доверительных отношений между PC и Active Directory