Настройка отправки и получения почты

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

Отправка уведомлений

Для отправки почтовых уведомлений BILLmanager может использовать локальный или внешний почтовый сервер.

При установке BILLmanager проверяет наличие локального почтового сервера. Если ни один почтовый сервер не установлен, то BILLmanager установит exim, postfix или sendmail, в зависимости от менеджера пакетов.

Никакой дополнительной настройки локального почтового сервера BILLmanager не производит. Это сделано намеренно, чтобы не менять конфигурацию уже используемого почтового сервера (ведь могут быть выполнены ручные настройки почтового сервера). Поэтому настройка локального MTA - задача администратора сервера.

Использование локального почтового сервера

По-умолчанию биллинг пытается отправлять уведомления, используя локальный почтовый сервер.

Для отправки уведомления вызывается команда sendmail -t, которой передает сформированное биллингом письмо со всеми заголовками.

Использование внешнего почтового сервера

Подключить внешний почтовый сервер можно в разделе Шлюзы сообщений. Кнопка "Создать" запустит мастер подключения нового шлюза, который состоит из двух шагов.

  • Шаг 1. Создание шлюза. На первом шаге выбирается тип шлюза. В данном случае это "Внешний почтовый сервер".
  • Шаг 2. Параметры шлюза. На этом этапе указываются данные подключения к удаленному SMTP серверу.


Billmgr-gw-remote.png

Почтовые заголовки

При отправке сообщений, ящик, указанный в настройках провайдера, будет подставляться в from . Ящик шлюза подставляется в sender.

Алгоритм отправки сообщений

BILLmanager формирует письмо на основе шаблона и записывает данные в таблицу notifytask.

db EXTINFO Query: 'INSERT INTO notifytask (createdate, filename, forcedonothing, id, modulename, priority) VALUES('2016-06-27', 'var/notify/2016-06-27/cTMzU21yVzBTaW1kT1BqLw==_autoprolongwarning_ntemail_13452.xml', 'off', '2629', 'ntemail', '50’)'

где 13452 - код пользователя клиента.

Само письмо хранится в файле в директории /usr/local/mgr5/var/notify/<дата>/<идентификатор письма>

Каждую минуту запускается по cron утилита

/usr/local/mgr5/notify/ntemail --command process

которая просматривает notifytask и передает данные почтовому серверу, чтобы тот отправил письмо. После того, как письмо отправлено, таблица очищается и файл письма удаляется.

Получение уведомлений

Для получения уведомлений BILLmanager может использовать локальный и внешний почтовый сервер.

Идентификация сообщений

При отправке уведомлений на шлюз входящих сообщений, проверяется с какого email адреса прислано сообщение. Если такой ящик уже зарегистрирован в биллинговой системе в качестве email одного из клиентов, то сообщение привязывается к клиенту и направляется в раздел "Запросы" отделу, указанному в настройках шлюза. Однако, если настроена поддержка по инцидентам (обращениям) и у клиента нет обращений, то письмо не попадет в раздел Запросы, а клиенту будет отправлено обратное письмо с сообщением о том, что не достаточно обращений.

Если сообщение приходит с неизвестного почтового ящика, то оно направляется в раздел Входящие сообщения, где сотрудники могут вручную сортировать полученные сообщения.

Какие письма из шлюза попадают в биллинг, а какие нет

При получении писем биллинг загружает все непрочитанные письма на сервере. В случае использования протокола POP, если выбран режим "Ничего не делать", письма могут быть не помечены как прочитанные и быть повторно загружены. При использовании протокола IMAP загружаются только не прочитанные письма. Письма, у которых заголовок TO равен ящику, указанному в настройках шлюза, попадают в биллинг и отмечаются прочитанными для почтового сервера. Если же письма были отправлены на ящик, для которого не настроен шлюз, то такие письма не попадут в биллинг. Также игнорируются пустые письма.

Например, в BILLmanager настроен шлюз входящих сообщение для почтового адреса: support@company.NET

В биллинг будут попадать только письма, адресованные support@company.net . Если же настроить ящик support@company.COM алиасом для support@company.net, то письма адресованные на support@company.com не будут попадать в биллинг, потому что нет шлюза для такого ящика.

Если же письмо будет отправлено сразу двум адресатам - support@company.net и support@company.com, то письмо попадет в биллинг.

Локальный почтовый сервер

Чтобы "забирать" почту с локального почтового сервера, при подключении шлюза выберите "Внешний почтовый сервер" и настройте подключение к localhost.

Использование внешнего почтового сервера

Подключить внешний почтовый сервер можно в разделе Шлюзы сообщений. Кнопка "Создать" запустит мастер подключения нового шлюза, который состоит из двух шагов.

  • Шаг 1. Создание шлюза. На первом шаге выбирается тип шлюза. В данном случае это "Внешний почтовый сервер".
  • Шаг 2. Параметры шлюза. На этом этапе указываются данные подключения к удаленному (можно локальному) POP3/IMAP серверу.


Billmgr-gw-remote-2.png


BILLmanager раз в несколько минут будет подключаться к POP3/IMAP серверу чтобы получить не прочитанные почтовые сообщения. После того, как биллинг получит сообщения, они маркируются как прочтенные. Однако, при работе с POP3 сервером иногда письма после получения не помечаются прочтенными (это зависит от настроек почтового сервера). В таком случае при следующем получении сообщений биллинг опять получит эти сообщения. В данном случае можно в поле "При получении сообщения" выставить - удалить сообщение с сервера.

Логирование

Лог работы биллинга с локальным почтовым сервером можно увидеть в файле

/usr/local/mgr5/var/gwlocalmail.log

Настроить расширенное отображение информации можно добавив строку

gwlocalmail.notify  9

или

gwlocalmail.*  9

в файл /usr/local/mgr5/etc/debug.conf

Лог работы биллинга с внешним почтовым сервером можно увидеть в файле

/usr/local/mgr5/var/gwremotemail.log

Настроить расширенное отображение информации можно добавив строку

gwremotemail.notify  9

или

gwremotemail.*  9 

в файл /usr/local/mgr5/etc/debug.conf