Мастер-Тур(15):MailService
Введение
MailService — это сервис для отправки email-сообщений, используемый в рамках системы бронирования. Сервис обеспечивает интеграцию с внешними почтовыми системами, логирование операций и управление настройками для различных типов сообщений.
Установка службы MailService
- Скопировать папку MailService из дистрибутива на сервер приложений.
- Указать настройки MailServiceUrl – адреса сервиса отправки почтовых сообщений в Megateс.TourSearchOwin.exe.config службы TourSearchOwin
- Включить MailServiceLogger - Логгер функционала отправки почтовых сообщений в Megateс.TourSearchOwin.exe.config службы TourSearchOwin
- Перед установкой службы необходимо настроить конфигурационный файл appsettings.json.
- Настройка службы MailService
В разделе Install конфигурационного файла задаются параметры установки и адреса службы MailService.
| Описание | Настройка |
|---|---|
| Имя службы |
"ServiceName": "MegatecMailService"
|
| Адрес службы |
"ServiceAddress": [ "http://localhost:7705" ]
|
| IP-адрес службы |
"IPAddress": "IPAddress.IPv6Any"
|
| Разрешенные хосты | "AllowedHosts": "*"
|
Пример конфигурации для установки службы
{
"Install": {
"ServiceName": "MegatecMailService",
"ServiceAddress": [ "http://localhost:7705" ],
"IPAddress": "IPAddress.IPv6Any"
},
"AllowedHosts": "*"
}
Убедитесь, что адреса и IP-адреса службы настроены правильно, а доступ к службе ограничен только необходимыми хостами для обеспечения безопасности.
- Настройка отправки e-mail сообщений через MailService
Из системы бронирования через MailService отправляются следующие сообщения:
| № | Сообщение | Получатели сообщения |
|---|---|---|
| 1 | Уведомление о новой агентской резервации | Администратор системы |
| 2 | Уведомление о персональном бронировании | Администратор системы, e-mail филиала |
| 3 | Сообщения для менеджера | Менеджер (филиал или страна в зависимости от настроек) |
| 4 | Уведомление об ошибке | Администратор системы |
| 5 | Уведомление для подагентства | Администратор системы (при активном параметре `SubAgency`) |
| 6 | Дополнительные уведомления | Указанные дополнительные адреса e-mail |
- Основные параметры конфигурации для MailService
| Описание | Настройка |
|---|---|
| Отправка бронирований через агентства | "SendAgencyReservation": true,
|
| Отправка личных сообщений на почту | "SendPersonalEmail": true,
|
| Приоритет менеджера в работе с заявками | "ManagerPriority": "filial",
|
| Включение персональных бронирований | "PersonalBooking": true,
|
| Доступность расширенного выбора филиала | "AdvancedFilialChoise": false,
|
| Отправка сообщений менеджеров на адрес страны | "SendManagerMessagesToCountryEmail": false,
|
| Включение использования субагентов | "SubAgency": false,
|
В таблице приведено описание почтовых настроек, которые должны быть заданы для работы MailService.
| Описание | Настройка |
|---|---|
| Адрес, с которого отправляются письма | "MailFrom": "primer@Mail.com"
|
| Основной адрес получателя | "RcptTo": "primer@Mail.com"
|
| Дополнительные e-mail адреса | "AddRcptTo": "primer@Mail.com"
|
| e-mail адреса для Visa | "Visa": "primer@Mail.com"
|
| e-mail адреса для Finance | "Finance": "primer@Mail.com"
|
| e-mail адрес менеджера | "Manager": "primer@Mail.com"
|
| Адрес администратора | "AdminEmail": "primer@Mail.com"
|
| Адрес для анкет | "AnkEmail": "primer@Mail.com"
|
| Адрес для дополнительного персонального e-mail | "AdditionalPersonalEmail": "primer@Mail.com"
|
| SMTP сервер | "SmtpServer": "smtp.yandex.ru"
|
| SMTP порт | "SmtpPort": 587
|
| Тип авторизации | "Authentication": "TLS/SSL"
|
| Имя пользователя SMTP | "SmtpUser": "primer@Mail.com"
|
| Пароль пользователя SMTP | "SmtpPassword": "••••••••"
|
| Включение SSL | "EnableSSL": true
|
Пример почтовых настроек appsettings.json для использования почты Google Mail.
"Mail": {
"SendAgencyReservation": true,
"SendPersonalEmail": true,
"ManagerPriority": "filial",
"PersonalBooking": true,
"AdvancedFilialChoise": false,
"SendManagerMessagesToCountryEmail": false,
"SubAgency": false,
"Accounts": [
{
"MailFrom": "primer@GoogleMail.com",
"SmtpServer": "smtp.gmail.com",
"SmtpPort": 25, //or 587
"Authentication": "TLS/SSL",
"SmtpUser": "GMailUser@GoogleMail.com",
"SmtpPassword": "Pa$$w0rd",
"DebugPurposeMail": "GMailDebugPurposeMail@GoogleMail.ru",
"EnableSSL": true
}
],
"Addressees": {
"RcptTo": "primer@GMail.com",
"AddRcptTo": "primer@GMail.com",
"Visa": "primer@GMail.com",
"Finance": "primer@GMail.com",
"Manager": "primer@GMail.com",
"AdminEmail": "primer@GMail.com",
"AnkEmail": "primer@GMail.com",
"AdditionalPersonalEmail": "primer@GMail.com"
}
},
Внимание! Необходимо также настроить почтовый ящик Google Mail:
- Осуществить вход в почтовый ящик Google Mail
- Выбрать раздел "Мой аккаунт" в списке "Приложения Google"
- Перейти в раздел "Безопасность и вход", включить опцию Ненадежные приложения разрешены
Пример почтовых настроек appsettings.json для использования почты Yandex, если почта со своим доменным именем на yandex. MailFrom и smtpUser должны совпадать, smtpPort="587".
{
"MailFrom": "primer@yandex.ru",
"SmtpServer": "smtp.yandex.ru",
"SmtpPort": 587, //or 587
"Authentication": "TLS/SSL",
"SmtpUser": "primer@yandex.ru",
"SmtpPassword": "Pa$$w0rd",
"DebugPurposeMail": "primerDebugPurposeMail@yandex.ru",
"EnableSSL": true
}
Пример почтовых настроек appsettings.json для использования почты Yandex, если почта на уandex без своего домена.
В качестве smtpUser берется имя пользователя из mailFrom без @yandex.ru, smtpPort="587".
{
"MailFrom": "primer@yandex.ru",
"SmtpServer": "smtp.yandex.ru",
"SmtpPort": 587, //or 587
"Authentication": "TLS/SSL",
"SmtpUser": "primer",
"SmtpPassword": "Pa$$w0rd",
"DebugPurposeMail": "primerDebugPurposeMail",
"EnableSSL": true
}
Пример почтовых настроек appsettings.json для использования почты Mail.ru.
{
"MailFrom": "primer@mail.ru",
"SmtpServer": "smtp.mail.ru",
"SmtpPort": 587, //or 587
"Authentication": "TLS/SSL",
"SmtpUser": "primer@mail.ru",
"SmtpPassword": "Pa$$w0rd",
"DebugPurposeMail": "primerDebugPurposeMail@mail.ru",
"EnableSSL": true
}
Для корректной работы сервиса необходимо убедиться, что доступ к конфигурационному файлу ограничен.
- Установка осуществляется запуском скрипта _Install.bat от имени администратора.

- При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта службы поиска.

- В Службах Windows добавляется служба MegatecMailService.
- Для удаления службы кэширования необходимо запустить скрипт _UnInstall.bat от имени администратора. При этом будут удалены правила для входящих подключений.
