Мастер-Тур(15):MailService

Материал из Megatec
Перейти к: навигация, поиск

Введение

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.

MegatecMailService

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