6.4 KiB
Yggmail - месенджер з поштовим інтерфейсом
Yggmail - це дочірній проєкт від розробників Yggdrasil, написаний на Go та має відкритий код. Дозволяє в декілька простих кроків розгорнути сервер для підключення будь якого поштового клієнта, сумісного з протоколами IMAP / SMTP. Працює без залежності від центрального серверу та виділеної адреси IP.
Для транспорту даних використовує вбудований вузол Yggdrasil, не потребує його окремого встановлення а також може ізольовано працювати поряд з ним. Трафік, що передається - захищений і не потребує додаткового шифрування TLS.
З коробки, являє собою сервер, підключитись до якого можна через поштовий клієнт типу Thunderbird або DeltaChat. Утім, від класичних поштових серверів відрізняється протоколом транспорту, тому не є сумісним зі звичайними скриньками і працює у власній мережі. Yggmail варто сприймати саме як месенджер, оскільки він має тільки спільний поштовий інтерфейс IMAP / SMTP але іншу модель транспорту.
Встановлення
Yggmail знаходиться на стадії розробки, тому для встановлення будемо збирати з початкового коду на останній версії Go. Про те, як встановити останню версію Go в Debian читайте тут.
Збірка Yggmail виконується наступною командою в теці і користувачем, від якого планується робота з поштою:
cd ~
go install github.com/neilalexander/yggmail/cmd/yggmail@latest
Так як я користуюсь systemd, встановлюю бінарний файл до системної локації:
install go/bin/yggmail /usr/local/bin/yggmail
- після цього, теоретично, теку
~/goможна видалити
Наступним кроком, ініціюємо новий профіль:
yggmail -password
Записуємо згенеровану адресу в полі Mail address, на неї будуть отримуватись листи і вона вказується при підключенні поштового клієнта.
Профіль користувача буде збережено до файлу ~/yggmail.db - його можна використовувати для резервного копіювання пошти.
Щоб вказати альтернативний шлях, вказується атрибут -database=/path/to/yggmail.db.
Довідка доступна командою:
yggmail -help
Запуск
Запуск відбувається однойменною командою, утім декілька слів про режими підключень:
- Мультикаст
- Підключення через певний публічний пір
- Обидва варіанти
Відповідно:
yggmail -multicast
yggmail -peer=tls://...
yggmail -multicast -peer=tls://...
Автозапуск
Yggmail отримує пошту тільки тоді, коли він працює та підключений до мережі. Якщо вузол отримувача не досяжний, лист переміщується в до черги очікування і буде надіслано як тільки зв'язок між вузлами відновиться.
Тому зручно створити системний сервіс з автозапуском:
#/etc/systemd/system/yggmail.service
[Unit]
After=network.target
Wants=network.target
[Service]
User=yggmail
Group=yggmail
Type=simple
WorkingDirectory=/home/yggmail
ExecStart=/usr/local/bin/yggmail -peer=tls://...
StandardOutput=file:///home/yggmail/debug.log
StandardError=file:///home/yggmail/error.log
[Install]
WantedBy=multi-user.target
Активуємо сервіс:
systemctl daemon-reload
systemctl enable yggmail
systemctl start yggmail
Перевіряємо:
netstat -tulpn | grep LISTEN
Підключення поштового клієнта
Yggmail прослуховує порти:
1025- SMTP / TCP1143- IMAP / TCP
В залежності від поштового клієнта, при створенні нового підключення скриньки, вказуються наступні дані:
- Логін - адреса, наприклад
123abc@yggmail - Пароль - пароль, вказаний при виконанні команди
yggmail -password - SMTP сервер -
localhost - SMTP порт -
1025 - IMAP сервер -
localhost - IMAP порт -
1143
Якщо сервер працює на віддаленому VPS, на ньому потрібно відкрити відповідні порти, а localhost замінити на його IP.
Єдиною рекомендацією можна додати, що не варто відправляти пошту самому собі для тестування, наразі це не працює. Щоб перевірити роботу Yggmail - відправляйте пошту з іншого вузла або залиште вашу адресу в коментарях - можливо хтось вам відповість!