- Go 100%
|
All checks were successful
continuous-integration/drone/tag Build is passing
|
||
|---|---|---|
| handler | ||
| lib | ||
| structs | ||
| .dockerignore | ||
| .drone.yml | ||
| .gitignore | ||
| Dockerfile.amd64 | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| main_test.go | ||
| README.md | ||
| TODO | ||
Обработчик почты
Сервис предназначен для отправки и получения почтовых сообщений по протоколам SMTP, POP3 и IMAP (посмотрим как реализовать).
Привязка
Каждый проект регистрируется по своему имени. При регистрации указываются логины, пароли, адреса подключений и т.д. На каждый проект может быть привязан только один почтовый ящик, т.е. один SMTP, один POP3 и один IMAP.
Функции
registerSmtp
Регистрация информации для проекта.
{
"server": "<адрес сервера>",
"port": 587,
"ssl": false,
"startTls": true,
"login": "<логин>",
"password": "<пароль>",
"from": "<адрес отправителя>",
"callback": "<Функция для обратного вызова>"
}
Поля могут быть заполнены только тех протоколов, которые используются. Если протоколы отсутствуют, то обмен по этому протоколу не осуществлять.
Если на какой либо протокол уже есть привязка, то данные будут обновлены, причем будут обновлены только те данные, которые указаны в структуре.
Если на SMTP callback-функция не указана, то это не означает, что SMTP не должен быть зарегистрирован, так как в данном случае "обратная функция" не является обязательной.
unregisterSmtp
Удаление регистрации о почтовых сервиса.
В запросе ничего не передается.
send
Отправка почтового сообщения. Все параметры для отправки указываются через заголовки header, основное тело письма передается в payload, а прикрепляемые файлы передаются в MultipartForm. Соответственно, если объемы данных большие, то бинарныее/большие данные записываются в s3-хранилище и передаются временные ссылки для загрузки.
Дополнительно в параметрах запроса может быть указано поле ID для идентификации конкретного сообщения.
Функция обратного вызова указывается, если сервис должен уведомить о событии. Если при запросе отправки почтового сообщения было указано поле ID, то в заголовке callback-функции так же будет передан этот индентификатор как идентификатор обратного вызова (мало ли понадобится отправляющей стороной для контроля успешности отправки сообщений).
Параметры в настройках
mailer.s3.endpoint
Адрес и порт s3-хранилища
mailer.s3.accessKeyID
Логин s3-хранилища
mailer.s3.secretAccessKey
Пароль s3-хранилища
mailer.s3.bucket
Bucket (корзина) в s3-хранилище
mailer.s3.useSsl
Использовать SSL (true/false)
mailer.s3.pathTmp
Путь для объектов, которые будут храниться сервисом для временного использования. Если не указано, то не используется.