No description
Find a file
Александр Федорюк ebf77ca088
All checks were successful
continuous-integration/drone/tag Build is passing
Fix Dockerfile
2023-04-18 16:08:46 +03:00
handler Prepare CI/CD 2023-04-18 15:56:22 +03:00
lib first commit 2023-04-18 09:41:03 +03:00
structs first commit 2023-04-18 09:41:03 +03:00
.dockerignore Prepare CI/CD 2023-04-18 15:56:22 +03:00
.drone.yml Prepare CI/CD 2023-04-18 15:56:22 +03:00
.gitignore Prepare CI/CD 2023-04-18 15:56:22 +03:00
Dockerfile.amd64 Fix Dockerfile 2023-04-18 16:08:46 +03:00
go.mod first commit 2023-04-18 09:41:03 +03:00
go.sum first commit 2023-04-18 09:41:03 +03:00
main.go first commit 2023-04-18 09:41:03 +03:00
main_test.go first commit 2023-04-18 09:41:03 +03:00
README.md Обновление README.md 2023-04-18 15:58:04 +03:00
TODO first commit 2023-04-18 09:41:03 +03:00

Build Status

Обработчик почты

Сервис предназначен для отправки и получения почтовых сообщений по протоколам 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

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