sender-smtp

command module
v0.0.0-...-838f836 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2020 License: MIT Imports: 19 Imported by: 0

README

sender-smtp

SMTP Sender written in Golang

Конфигурация

Переменные окружения

TODO: ...

Пример файла конфигурации
application:
    listen: 0.0.0.0:5555
    db: /etc/senderapi/database.db

jwt:
    secret: ...
    algorithm: HS256
База данных

Create SMTP record

insert into smtp (project_id, server, port, sender_login, sender_password)
values ('3854d9ce-9e27-11ea-9b45-c42c033a81ea', 'smtp.google.com', 587, 'noreply@google.com', '$3cr3t');

Create template

insert into `templates` (project_id, template)
values ('3854d9ce-9e27-11ea-9b45-c42c033a81ea', '<!DOCTYPE HTML PULBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>{{ . }}<br>
<div class="moz-signature"><i><br>
<br>
Regards<br>
Vyacheslav Anzhiganov<br>
<i></div>
</body>
</html>');

Использование

Авторизация

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

Примерное содержание JWT-ключа:

{
  "token": "9da9bc2c-b394-11ea-94ee-76133ed1bebd",
  "user": {
    "id": "61f784b1-31a0-4117-a828-40568df8dddc",
    "email": "mail@mail.ru"
  },
  "exp": 1592812546
}

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

CURL
Создание проекта

Запрос

curl gocloud.ru/api/smtp/v1/projects -XPOST \
-H 'Authorization: __JWT__'
-d '{"name": "Project name", "secret": "S3cr3t"}'

Ответ

{"id":"c5eb632a-8dbe-4c95-955d-fa9ed621d060"}
Добавление учетной записи SMTP
curl gocloud.ru/api/smtp/v1/smtp -XPOST \
-H 'Authorization: __JWT__'
-d '{"project_id": "c5eb632a-8dbe-4c95-955d-fa9ed621d060", "smtp_server": "smtp.google.com", "smtp_port": 587, "smtp_login": "noreply@google.com", "smtp_password": "$3cr3t"}'

Ответ

{"id":"c5eb632a-8dbe-4c95-955d-fa9ed621d060"}
Добавление шаблона
curl gocloud.ru/api/smtp/v1/templates -XPOST \
-H 'Authorization: __JWT__'
-d '{"project_id": "c5eb632a-8dbe-4c95-955d-fa9ed621d060", "template": "<html>"}'

Ответ

{"id":"a15e4ed5-1346-40d8-9f82-c69b693c4809"}

Запрос для отправки письма в виде HTML

curl localhost:5555/api/v1 -XPOST \
-H 'X-Secret-Key: qwerty' \
-H 'X-Project-ID: 3854d9ce-9e27-11ea-9b45-c42c033a81ea' \
-H 'X-Template-ID: a15e4ed5-1346-40d8-9f82-c69b693c4809' \
-d '{"message": "wqeqwewe\ndwdwdw", "subject": "wqewqe", "to": "info@gmail.com", "content-type":"html"}'

Запрос для отправки письма в виде текста

curl localhost:5555/api/v1 -XPOST \
-H 'X-Secret-Key: qwerty' \
-H 'X-Project-ID: 3854d9ce-9e27-11ea-9b45-c42c033a81ea' \
-d '{"message": "wqeqwewe\ndwdwdw", "subject": "wqewqe", "to": "info@gmail.com", "content-type":"plain"}'

Ответ

{"id":"6f527846-9dc3-11ea-ae6e-c42c033a81ea"}

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL