mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-19 06:12:39 +00:00
initial commit
This commit is contained in:
commit
d4994cde4c
61 changed files with 7044 additions and 0 deletions
118
post/yggmail-mesendzer-z-poshtovym-interfeysom.md
Normal file
118
post/yggmail-mesendzer-z-poshtovym-interfeysom.md
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
# Yggmail - месенджер з поштовим інтерфейсом
|
||||
|
||||
[Yggmail](https://github.com/neilalexander/yggmail) - це дочірній проєкт від розробників [Yggdrasil](https://devzone.org.ua/post/yggdrasil-mereznii-protokol-z-decentralizovanim-routingom), написаний на Go та має відкритий код. Дозволяє в декілька простих кроків розгорнути сервер для підключення будь якого поштового клієнта, сумісного з протоколами IMAP / SMTP. Працює без залежності від центрального серверу та виділеної адреси IP.
|
||||
|
||||
Для транспорту даних використовує вбудований вузол Yggdrasil, не потребує його окремого встановлення а також може ізольовано працювати поряд з ним. Трафік, що передається - захищений і не потребує додаткового шифрування TLS.
|
||||
|
||||
З коробки, являє собою сервер, підключитись до якого можна через поштовий клієнт типу Thunderbird або [DeltaChat](https://delta.chat/uk/). Утім, від класичних поштових серверів відрізняється протоколом транспорту, тому не є сумісним зі звичайними скриньками і працює у власній мережі. Yggmail варто сприймати саме як месенджер, оскільки він має тільки спільний поштовий інтерфейс IMAP / SMTP але іншу модель транспорту.
|
||||
|
||||
## Встановлення
|
||||
|
||||
Yggmail знаходиться на стадії розробки, тому для встановлення будемо збирати з початкового коду на останній версії Go.
|
||||
Про те, як встановити останню версію Go в Debian читайте [тут](https://devzone.org.ua/post/vstanovlennia-ostannyoyi-versiyi-go-v-debian).
|
||||
|
||||
Збірка Yggmail виконується наступною командою в теці і користувачем, від якого планується робота з поштою:
|
||||
```
|
||||
cd ~
|
||||
go install github.com/neilalexander/yggmail/cmd/yggmail@latest
|
||||
```
|
||||
|
||||
Так як я користуюсь `systemd`, встановлюю бінарний файл до системної локації:
|
||||
``` bash
|
||||
install go/bin/yggmail /usr/local/bin/yggmail
|
||||
```
|
||||
* після цього, теоретично, теку `~/go` можна видалити
|
||||
|
||||
Наступним кроком, ініціюємо новий профіль:
|
||||
```
|
||||
yggmail -password
|
||||
```
|
||||
|
||||
Записуємо згенеровану адресу в полі `Mail address`, на неї будуть отримуватись листи і вона вказується при підключенні поштового клієнта.
|
||||
|
||||
Профіль користувача буде збережено до файлу `~/yggmail.db` - його можна використовувати для резервного копіювання пошти.
|
||||
Щоб вказати альтернативний шлях, вказується атрибут `-database=/path/to/yggmail.db`.
|
||||
|
||||
Довідка доступна командою:
|
||||
```
|
||||
yggmail -help
|
||||
```
|
||||
|
||||
## Запуск
|
||||
|
||||
Запуск відбувається однойменною командою, утім декілька слів про режими підключень:
|
||||
|
||||
* Мультикаст
|
||||
* Підключення через певний [публічний пір](https://publicpeers.neilalexander.dev)
|
||||
* Обидва варіанти
|
||||
|
||||
Відповідно:
|
||||
|
||||
```
|
||||
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 / TCP
|
||||
* `1143` - IMAP / TCP
|
||||
|
||||
В залежності від поштового клієнта, при створенні нового підключення скриньки, вказуються наступні дані:
|
||||
|
||||
* Логін - адреса, наприклад `123abc@yggmail`
|
||||
* Пароль - пароль, вказаний при виконанні команди `yggmail -password`
|
||||
* SMTP сервер - `localhost`
|
||||
* SMTP порт - `1025`
|
||||
* IMAP сервер - `localhost`
|
||||
* IMAP порт - `1143`
|
||||
|
||||
Якщо сервер працює на віддаленому VPS, на ньому потрібно відкрити відповідні порти, а `localhost` замінити на його IP.
|
||||
|
||||
Єдиною рекомендацією можна додати, що не варто відправляти пошту самому собі для тестування, наразі це не працює.
|
||||
Щоб перевірити роботу Yggmail - відправляйте пошту з іншого вузла або залиште вашу адресу в коментарях - можливо хтось вам відповість!
|
||||
|
||||
## Посилання
|
||||
|
||||
* [Проєкт на GitHub](https://github.com/neilalexander/yggmail)
|
||||
* [Канал в Matrix](https://matrix.to/#/#yggmail:matrix.org)
|
||||
Loading…
Add table
Add a link
Reference in a new issue