Підтримка Email RFC Протоколів - Повний Посібник зі Стандартів та Специфікацій
Про цей документ
Цей документ описує підтримку протоколу RFC (Request for Comments) для Forward Email. Оскільки Forward Email використовує WildDuck під капотом для функціональності IMAP/POP3, підтримка протоколу та обмеження, задокументовані тут, відображають реалізацію WildDuck.
Important
Forward Email використовує SQLite для зберігання повідомлень замість MongoDB (який спочатку використовував WildDuck). Це впливає на певні деталі реалізації, описані нижче.
Вихідний код: https://github.com/forwardemail/forwardemail.net
Огляд архітектури
Порівняння поштових сервісів - підтримка протоколів та відповідність стандартам RFC
Important
Пісочниця та квантово-стійке шифрування: Forward Email — єдиний поштовий сервіс, який зберігає індивідуально зашифровані поштові скриньки SQLite за допомогою вашого пароля (який є тільки у вас). Кожна скринька зашифрована за допомогою sqleet (ChaCha20-Poly1305), автономна, ізольована та портативна. Якщо ви забудете пароль, ви втратите скриньку — навіть Forward Email не зможе її відновити. Деталі дивіться у Quantum-Safe Encrypted Email.
Порівняйте підтримку поштових протоколів та реалізацію стандартів RFC серед основних поштових провайдерів:
| Функція | Forward Email | Postfix/Dovecot | Gmail | iCloud Mail | Outlook.com | Fastmail | Yahoo/AOL (Verizon) | ProtonMail | Tutanota |
|---|---|---|---|---|---|---|---|---|---|
| Ціна за власний домен | Безкоштовно | Безкоштовно | $7.20/міс | $0.99/міс | $7.20/міс | $5/міс | $3.19/міс | $4.99/міс | $3.27/міс |
| IMAP4rev1 (RFC 3501) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ⚠️ Через Bridge | ❌ Не підтримується |
| IMAP4rev2 (RFC 9051) | ⚠️ Частково | ⚠️ Частково | ⚠️ 31% | ⚠️ 92% | ⚠️ 46% | ⚠️ 69% | ⚠️ 85% | ⚠️ Через Bridge | ❌ Не підтримується |
| POP3 (RFC 1939) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ⚠️ Через Bridge | ❌ Не підтримується |
| SMTP (RFC 5321) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ⚠️ Через Bridge | ❌ Не підтримується |
| JMAP (RFC 8620) | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується |
| DKIM (RFC 6376) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| SPF (RFC 7208) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| DMARC (RFC 7489) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| ARC (RFC 8617) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується |
| MTA-STS (RFC 8461) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| DANE (RFC 7671) | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується |
| DSN (RFC 3461) | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується | ⚠️ Невідомо | ❌ Не підтримується | ⚠️ Через Bridge | ❌ Не підтримується |
| REQUIRETLS (RFC 8689) | ✅ Підтримується | ✅ Підтримується | ⚠️ Невідомо | ⚠️ Невідомо | ⚠️ Невідомо | ⚠️ Невідомо | ⚠️ Невідомо | ⚠️ Через Bridge | ❌ Не підтримується |
| ManageSieve (RFC 5804) | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується |
| OpenPGP (RFC 9580) | ✅ Підтримується | ⚠️ Через плагіни | ⚠️ Сторонні | ⚠️ Сторонні | ⚠️ Сторонні | ⚠️ Сторонні | ⚠️ Сторонні | ✅ Вбудоване | ❌ Не підтримується |
| S/MIME (RFC 8551) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ⚠️ Частково | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується |
| CalDAV (RFC 4791) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Через Bridge | ❌ Не підтримується |
| CardDAV (RFC 6352) | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Через Bridge | ❌ Не підтримується |
| Завдання (VTODO) | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується |
| Sieve (RFC 5228) | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ❌ Не підтримується |
| Catch-All | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується | ❌ Не підтримується | ✅ Підтримується |
| Необмежена кількість псевдонімів | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується |
| Двофакторна автентифікація | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| Push-повідомлення | ✅ Підтримується | ⚠️ Через плагіни | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується |
| Календар/Контакти на десктопі | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується |
| Розширений пошук | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується | ✅ Підтримується |
| API/Інтеграції | ✅ 39 кінцевих точок | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ✅ Підтримується | ❌ Не підтримується | ✅ Підтримується | ❌ Не підтримується |
Візуалізація підтримки протоколів
Основні протоколи електронної пошти
Потік протоколу електронної пошти
Протокол електронної пошти IMAP4 та розширення
Note
Forward Email підтримує IMAP4rev1 (RFC 3501) з частковою підтримкою функцій IMAP4rev2 (RFC 9051).
Forward Email забезпечує надійну підтримку IMAP4 через реалізацію поштового сервера WildDuck. Сервер реалізує IMAP4rev1 (RFC 3501) з частковою підтримкою розширень IMAP4rev2 (RFC 9051).
Функціональність IMAP у Forward Email забезпечується залежністю WildDuck. Підтримуються наступні RFC для електронної пошти:
| RFC | Назва | Примітки щодо реалізації |
|---|---|---|
| RFC 3501 | Протокол доступу до інтернет-повідомлень (IMAP) - Версія 4rev1 | Повна підтримка з навмисними відмінностями (див. нижче) |
| RFC 2177 | Команда IMAP4 IDLE | Push-сповіщення |
| RFC 2342 | Простір імен IMAP4 | Підтримка простору імен поштових скриньок |
| RFC 2087 | Розширення IMAP4 QUOTA | Управління квотами сховища |
| RFC 2971 | Розширення IMAP4 ID | Ідентифікація клієнта/сервера |
| RFC 5161 | Розширення IMAP4 ENABLE | Увімкнення розширень IMAP |
| RFC 4959 | Розширення IMAP для початкової відповіді клієнта SASL (SASL-IR) | Початкова відповідь клієнта |
| RFC 3691 | Команда IMAP4 UNSELECT | Закриття скриньки без EXPUNGE |
| RFC 4315 | Розширення IMAP UIDPLUS | Покращені команди UID |
| RFC 7162 | Розширення IMAP: Швидка ресинхронізація змін прапорців (CONDSTORE) | Умовне збереження (STORE) |
| RFC 6154 | Розширення IMAP LIST для спеціальних поштових скриньок | Атрибути спеціальних скриньок |
| RFC 6851 | Розширення IMAP MOVE | Атомарна команда MOVE |
| RFC 6855 | Підтримка IMAP для UTF-8 | Підтримка UTF-8 |
| RFC 3348 | Розширення IMAP4 для дочірніх скриньок | Інформація про дочірні скриньки |
| RFC 7889 | Розширення IMAP4 для оголошення максимальної величини завантаження (APPENDLIMIT) | Максимальний розмір завантаження |
| Підтримувані розширення IMAP: |
| Розширення | RFC | Статус | Опис |
|---|---|---|---|
| IDLE | RFC 2177 | ✅ Підтримується | Push-сповіщення |
| NAMESPACE | RFC 2342 | ✅ Підтримується | Підтримка простору імен поштових скриньок |
| QUOTA | RFC 2087 | ✅ Підтримується | Керування квотою сховища |
| ID | RFC 2971 | ✅ Підтримується | Ідентифікація клієнта/сервера |
| ENABLE | RFC 5161 | ✅ Підтримується | Увімкнення розширень IMAP |
| SASL-IR | RFC 4959 | ✅ Підтримується | Початкова відповідь клієнта |
| UNSELECT | RFC 3691 | ✅ Підтримується | Закриття скриньки без EXPUNGE |
| UIDPLUS | RFC 4315 | ✅ Підтримується | Розширені команди UID |
| CONDSTORE | RFC 7162 | ✅ Підтримується | Умовне збереження (STORE) |
| SPECIAL-USE | RFC 6154 | ✅ Підтримується | Спеціальні атрибути скриньок |
| MOVE | RFC 6851 | ✅ Підтримується | Атомарна команда MOVE |
| UTF8=ACCEPT | RFC 6855 | ✅ Підтримується | Підтримка UTF-8 |
| CHILDREN | RFC 3348 | ✅ Підтримується | Інформація про дочірні скриньки |
| APPENDLIMIT | RFC 7889 | ✅ Підтримується | Максимальний розмір завантаження |
| XLIST | Нестандартне | ✅ Підтримується | Сумісний зі списком папок Gmail |
| XAPPLEPUSHSERVICE | Нестандартне | ✅ Підтримується | Сервіс Apple Push Notification |
Відмінності протоколу IMAP від специфікацій RFC
Warning
Наступні відмінності від специфікацій RFC можуть вплинути на сумісність клієнтів.
Forward Email навмисно відхиляється від деяких специфікацій IMAP RFC. Ці відмінності успадковані від WildDuck і задокументовані нижче:
- Відсутній прапорець \Recent: Прапорець
\Recentне реалізований. Всі повідомлення повертаються без цього прапорця. - RENAME не впливає на підпапки: При перейменуванні папки підпапки не перейменовуються автоматично. Ієрархія папок у базі даних плоска.
- INBOX не можна перейменувати: RFC 3501 дозволяє перейменовувати INBOX, але Forward Email це явно забороняє. Див. код WildDuck.
- Відсутні непрохання FLAGS-відповіді: При зміні прапорців клієнту не надсилаються непрохання FLAGS-відповіді.
- STORE повертає NO для видалених повідомлень: Спроба змінити прапорці у видалених повідомленнях повертає NO замість ігнорування.
- CHARSET ігнорується в SEARCH: Аргумент
CHARSETу командах SEARCH ігнорується. Всі пошуки виконуються з використанням UTF-8. - MODSEQ метадані ігноруються: Метадані
MODSEQу командах STORE ігноруються. - SEARCH TEXT та SEARCH BODY: Forward Email використовує SQLite FTS5 (повнотекстовий пошук) замість пошуку
$textу MongoDB. Це забезпечує:- Підтримку оператора
NOT(MongoDB не підтримує) - Ранжування результатів пошуку
- Пошук менше ніж за 100 мс у великих скриньках
- Підтримку оператора
- Поведение autoexpunge: Повідомлення з прапорцем
\Deletedавтоматично видаляються при закритті скриньки. - Точність повідомлень: Деякі зміни повідомлень можуть не зберігати точну оригінальну структуру повідомлення.
Часткова підтримка IMAP4rev2:
Forward Email реалізує IMAP4rev1 (RFC 3501) з частковою підтримкою IMAP4rev2 (RFC 9051). Наступні функції IMAP4rev2 ще не підтримуються:
- LIST-STATUS - Об’єднані команди LIST і STATUS
- LITERAL- - Несинхронізовані літерали (мінус варіант)
- OBJECTID - Унікальні ідентифікатори об’єктів
- SAVEDATE - Атрибут дати збереження
- REPLACE - Атомарна заміна повідомлення
- UNAUTHENTICATE - Закриття автентифікації без закриття з’єднання
Розслаблене оброблення структури тіла:
Forward Email використовує "розслаблене" оброблення тіла для пошкоджених MIME-структур, що може відрізнятися від суворої інтерпретації RFC. Це покращує сумісність з реальними листами, які не ідеально відповідають стандартам. Розширення METADATA (RFC 5464):
Розширення IMAP METADATA не підтримується. Для отримання додаткової інформації про це розширення див. RFC 5464. Обговорення додавання цієї функції можна знайти у WildDuck Issue #937.
Розширення IMAP, ЯКІ НЕ ПІДТРИМУЮТЬСЯ
Наступні розширення IMAP із реєстру можливостей IMAP IANA НЕ підтримуються:
| RFC | Назва | Причина |
|---|---|---|
| RFC 2086 | Розширення IMAP4 ACL | Спільні папки не реалізовані. Див. WildDuck Issue #427 |
| RFC 5256 | Розширення IMAP SORT та THREAD | Потокова обробка реалізована внутрішньо, але не через протокол RFC 5256. Див. WildDuck Issue #12 |
| RFC 5162 | Розширення IMAP4 для швидкої ресинхронізації поштової скриньки (QRESYNC) | Не реалізовано |
| RFC 5464 | Розширення IMAP METADATA | Операції з метаданими ігноруються. Див. документацію WildDuck |
| RFC 5258 | Розширення команди IMAP4 LIST | Не реалізовано |
| RFC 5267 | Контексти для IMAP4 | Не реалізовано |
| RFC 5465 | Розширення IMAP NOTIFY | Не реалізовано |
| RFC 5466 | Розширення IMAP4 FILTERS | Не реалізовано |
| RFC 6203 | Розширення IMAP4 для нечіткого пошуку | Не реалізовано |
| RFC 6785 | Рекомендації щодо реалізації IMAP4 | Рекомендації не повністю дотримані |
| RFC 7162 | Розширення IMAP: швидка ресинхронізація змін прапорців (CONDSTORE) та швидка ресинхронізація поштової скриньки (QRESYNC) | Не реалізовано |
| RFC 8437 | Розширення IMAP UNAUTHENTICATE для повторного використання з’єднання | Не реалізовано |
| RFC 8438 | Розширення IMAP для STATUS=SIZE | Не реалізовано |
| RFC 8457 | Ключове слово IMAP "$Important" та спеціальний атрибут "\Important" | Не реалізовано |
| RFC 8474 | Розширення IMAP для ідентифікаторів об’єктів | Не реалізовано |
| RFC 9051 | Протокол доступу до повідомлень в Інтернеті (IMAP) - версія 4rev2 | Forward Email реалізує IMAP4rev1 (RFC 3501) |
Протокол POP3 для електронної пошти та розширення
Note
Forward Email підтримує POP3 (RFC 1939) зі стандартними розширеннями для отримання електронної пошти.
Функціональність POP3 у Forward Email забезпечується залежністю WildDuck. Підтримуються наступні RFC для електронної пошти:
| RFC | Назва | Примітки щодо реалізації |
|---|---|---|
| RFC 1939 | Протокол поштового офісу - Версія 3 (POP3) | Повна підтримка з навмисними відмінностями (див. нижче) |
| RFC 2595 | Використання TLS з IMAP, POP3 та ACAP | Підтримка STARTTLS |
| RFC 2449 | Механізм розширень POP3 | Підтримка команди CAPA |
Forward Email надає підтримку POP3 для клієнтів, які віддають перевагу цьому простішому протоколу замість IMAP. POP3 ідеально підходить для користувачів, які хочуть завантажувати листи на один пристрій і видаляти їх із сервера.
Підтримувані розширення POP3:
| Розширення | RFC | Статус | Опис |
|---|---|---|---|
| TOP | RFC 1939 | ✅ Підтримується | Отримання заголовків повідомлень |
| USER | RFC 1939 | ✅ Підтримується | Аутентифікація за ім’ям користувача |
| UIDL | RFC 1939 | ✅ Підтримується | Унікальні ідентифікатори повідомлень |
| EXPIRE | RFC 2449 | ✅ Підтримується | Політика терміну дії повідомлень |
Відмінності протоколу POP3 від специфікацій RFC
Warning
POP3 має вроджені обмеження порівняно з IMAP.
Important
Критична відмінність: поведінка Forward Email vs WildDuck при команді POP3 DELE
Forward Email реалізує відповідне RFC постійне видалення для команд POP3 DELE, на відміну від WildDuck, який переміщує повідомлення до кошика.
Поведінка Forward Email (джерело коду):
DELE→QUITпостійно видаляє повідомлення- Точно відповідає специфікації RFC 1939
- Відповідає поведінці Dovecot (за замовчуванням), Postfix та інших серверів, що відповідають стандартам
Поведінка WildDuck (обговорення):
DELE→QUITпереміщує повідомлення до кошика (подібно до Gmail)- Навмисне рішення для безпеки користувача
- Не відповідає RFC, але запобігає випадковій втраті даних
Чому Forward Email відрізняється:
- Відповідність RFC: Дотримується специфікації RFC 1939
- Очікування користувачів: Робочий процес завантаження та видалення передбачає постійне видалення
- Управління сховищем: Правильне звільнення дискового простору
- Сумісність: Узгоджено з іншими серверами, що відповідають RFC
Note
Перелік повідомлень POP3: Forward Email перелічує ВСІ повідомлення з INBOX без обмежень. Це відрізняється від WildDuck, який за замовчуванням обмежує до 250 повідомлень. Див. джерело коду.
Доступ з одного пристрою:
POP3 призначений для доступу з одного пристрою. Повідомлення зазвичай завантажуються і видаляються з сервера, що робить його непридатним для синхронізації між кількома пристроями.
Відсутність підтримки папок:
POP3 отримує доступ лише до папки INBOX. Інші папки (Відправлені, Чернетки, Кошик тощо) через POP3 недоступні.
Обмежене керування повідомленнями:
POP3 забезпечує базове отримання та видалення повідомлень. Розширені функції, такі як позначення, переміщення або пошук повідомлень, недоступні.
Розширення POP3, які НЕ підтримуються
Наступні розширення POP3 з реєстру механізму розширень POP3 IANA НЕ підтримуються:
| RFC | Назва | Причина |
|---|---|---|
| RFC 6856 | Підтримка UTF-8 у протоколі Post Office Protocol версії 3 (POP3) | Не реалізовано у сервері WildDuck POP3 |
| RFC 2595 | Команда STLS | Підтримується лише STARTTLS, не STLS |
| RFC 3206 | Коди відповіді SYS та AUTH POP | Не реалізовано |
SMTP Email Protocol and Extensions
Note
Forward Email підтримує SMTP (RFC 5321) з сучасними розширеннями для безпечної та надійної доставки електронної пошти.
Функціональність SMTP у Forward Email забезпечується кількома компонентами: smtp-server (nodemailer), zone-mta та власними реалізаціями. Підтримуються наступні RFC для електронної пошти:
| RFC | Назва | Примітки щодо реалізації |
|---|---|---|
| RFC 5321 | Протокол простого пересилання пошти (SMTP) | Повна підтримка |
| RFC 3207 | Розширення SMTP для безпечного SMTP через Transport Layer Security (STARTTLS) | Підтримка TLS/SSL |
| RFC 4954 | Розширення SMTP для аутентифікації (AUTH) | PLAIN, LOGIN, CRAM-MD5, XOAUTH2 |
| RFC 6531 | Розширення SMTP для інтернаціоналізованої електронної пошти (SMTPUTF8) | Підтримка нативних юнікод-адрес |
| RFC 3461 | Розширення SMTP для повідомлень про статус доставки (DSN) | Повна підтримка DSN |
| RFC 3463 | Покращені коди стану поштової системи | Покращені коди стану у відповідях |
| RFC 1870 | Розширення SMTP для оголошення розміру повідомлення (SIZE) | Оголошення максимального розміру повідомлення |
| RFC 2920 | Розширення SMTP для конвеєрної обробки команд (PIPELINING) | Підтримка конвеєрної обробки команд |
| RFC 1652 | Розширення SMTP для 8-бітного MIME-транспорту (8BITMIME) | Підтримка 8-бітного MIME |
| RFC 6152 | Розширення SMTP для 8-бітного MIME-транспорту | Підтримка 8-бітного MIME |
| RFC 2034 | Розширення SMTP для повернення покращених кодів помилок (ENHANCEDSTATUSCODES) | Покращені коди стану |
Forward Email реалізує повнофункціональний SMTP-сервер із підтримкою сучасних розширень, що підвищують безпеку, надійність та функціональність.
Підтримувані розширення SMTP:
| Розширення | RFC | Статус | Опис |
|---|---|---|---|
| PIPELINING | RFC 2920 | ✅ Підтримується | Конвеєрна обробка команд |
| SIZE | RFC 1870 | ✅ Підтримується | Оголошення розміру повідомлення (обмеження 52 МБ) |
| ETRN | RFC 1985 | ✅ Підтримується | Віддалена обробка черги |
| STARTTLS | RFC 3207 | ✅ Підтримується | Підвищення до TLS |
| ENHANCEDSTATUSCODES | RFC 2034 | ✅ Підтримується | Покращені коди стану |
| 8BITMIME | RFC 6152 | ✅ Підтримується | 8-бітний MIME транспорт |
| DSN | RFC 3461 | ✅ Підтримується | Повідомлення про статус доставки |
| CHUNKING | RFC 3030 | ✅ Підтримується | Передача повідомлень частинами |
| SMTPUTF8 | RFC 6531 | ⚠️ Частково | UTF-8 адреси електронної пошти (частково) |
| REQUIRETLS | RFC 8689 | ✅ Підтримується | Вимога TLS для доставки |
Сповіщення про статус доставки (DSN)
Tip
DSN надає детальну інформацію про статус доставки надісланих електронних листів.
Forward Email повністю підтримує DSN (RFC 3461), що дозволяє відправникам запитувати сповіщення про статус доставки. Ця функція надає:
- Сповіщення про успішну доставку повідомлень
- Сповіщення про помилки з детальною інформацією про помилки
- Сповіщення про затримку, коли доставка тимчасово затримується
DSN особливо корисний для:
- Підтвердження доставки важливих повідомлень
- Вирішення проблем з доставкою
- Автоматизованих систем обробки електронної пошти
- Вимог відповідності та аудиту
Підтримка REQUIRETLS
Important
Forward Email — один із небагатьох провайдерів, який явно рекламує та застосовує REQUIRETLS.
Forward Email підтримує REQUIRETLS (RFC 8689), що гарантує доставку електронних листів лише через TLS-зашифровані з’єднання. Це забезпечує:
- Кінцеве шифрування для всього шляху доставки
- Застосування для користувача через прапорець у композиторі листів
- Відхилення спроб недешифрованої доставки
- Підвищену безпеку для конфіденційних комунікацій
SMTP розширення, які НЕ підтримуються
Наступні SMTP розширення з IANA SMTP Service Extensions Registry НЕ підтримуються:
| RFC | Назва | Причина |
|---|---|---|
| RFC 4865 | SMTP Submission Service Extension for Future Message Release (FUTURERELEASE) | Не реалізовано |
| RFC 6710 | SMTP Extension for Message Transfer Priorities (MT-PRIORITY) | Не реалізовано |
| RFC 7293 | The Require-Recipient-Valid-Since Header Field and SMTP Service Extension | Не реалізовано |
| RFC 7372 | Email Auth Status Codes | Не повністю реалізовано |
| RFC 4468 | Message Submission BURL Extension | Не реалізовано |
| RFC 3030 | SMTP Service Extensions for Transmission of Large and Binary MIME Messages (CHUNKING, BINARYMIME) | Не реалізовано |
| RFC 2852 | Deliver By SMTP Service Extension | Не реалізовано |
Протокол електронної пошти JMAP
Caution
JMAP поки що не підтримується Forward Email.
| RFC | Назва | Статус | Причина |
|---|---|---|---|
| RFC 8620 | The JSON Meta Application Protocol (JMAP) | ❌ Не підтримується | Forward Email використовує IMAP/POP3/SMTP та комплексний REST API замість |
JMAP (JSON Meta Application Protocol) — сучасний протокол електронної пошти, розроблений для заміни IMAP.
Чому JMAP не підтримується:
"JMAP — це звір, якого не слід було винаходити. Він намагається перетворити TCP/IMAP (вже поганий протокол за сучасними стандартами) у HTTP/JSON, просто використовуючи інший транспорт, зберігаючи суть." — Андріс Рейнман, HN Discussion "JMAP існує понад 10 років, і практично не має жодного впровадження" – Андріс Рейнман, GitHub Discussion
Також дивіться додаткові коментарі на https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=jmap andris&sort=byDate&type=comment.
Forward Email наразі зосереджений на наданні відмінної підтримки IMAP, POP3 та SMTP, а також комплексного REST API для керування електронною поштою. Підтримка JMAP може бути розглянута в майбутньому залежно від попиту користувачів та впровадження в екосистемі.
Альтернатива: Forward Email пропонує Повний REST API з 39 кінцевими точками, який забезпечує подібний функціонал до JMAP для програмного доступу до електронної пошти.
Безпека електронної пошти
Архітектура безпеки електронної пошти
Протоколи автентифікації електронних повідомлень
Note
Forward Email реалізує всі основні протоколи автентифікації електронної пошти для запобігання підробці та забезпечення цілісності повідомлень.
Forward Email використовує бібліотеку mailauth для автентифікації електронної пошти. Підтримуються наступні RFC:
| RFC | Назва | Примітки щодо реалізації |
|---|---|---|
| RFC 6376 | DomainKeys Identified Mail (DKIM) Підписи | Повний підпис DKIM та перевірка |
| RFC 8463 | Новий криптографічний метод підпису для DKIM (Ed25519-SHA256) | Підтримує алгоритми підпису RSA-SHA256 та Ed25519-SHA256 |
| RFC 7208 | Sender Policy Framework (SPF) | Перевірка записів SPF |
| RFC 7489 | Domain-based Message Authentication, Reporting, and Conformance (DMARC) | Застосування політики DMARC |
| RFC 8617 | Authenticated Received Chain (ARC) | Запечатування та перевірка ARC |
Протоколи автентифікації електронної пошти перевіряють, що повідомлення справді надійшло від заявленого відправника і не було змінене під час передачі.
Підтримка протоколів автентифікації
| Протокол | RFC | Статус | Опис |
|---|---|---|---|
| DKIM | RFC 6376 | ✅ Підтримується | DomainKeys Identified Mail - Криптографічні підписи |
| SPF | RFC 7208 | ✅ Підтримується | Sender Policy Framework - Авторизація IP-адрес |
| DMARC | RFC 7489 | ✅ Підтримується | Domain-based Message Authentication - Застосування політики |
| ARC | RFC 8617 | ✅ Підтримується | Authenticated Received Chain - Збереження автентифікації при пересиланні |
DKIM (DomainKeys Identified Mail)
DKIM додає криптографічний підпис до заголовків електронної пошти, що дозволяє отримувачам перевірити, що повідомлення було авторизоване власником домену і не було змінене під час передачі.
Forward Email використовує mailauth для підписання та перевірки DKIM.
Основні функції:
- Автоматичне підписання DKIM для всіх вихідних повідомлень
- Підтримка ключів RSA та Ed25519
- Підтримка кількох селекторів
- Перевірка DKIM для вхідних повідомлень
SPF (Sender Policy Framework)
SPF дозволяє власникам доменів вказувати, які IP-адреси уповноважені надсилати електронну пошту від імені їх домену.
Основні функції:
- Перевірка SPF записів для вхідних повідомлень
- Автоматична перевірка SPF з детальними результатами
- Підтримка механізмів include, redirect та all
- Налаштовувані політики SPF для кожного домену
DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC базується на SPF та DKIM для забезпечення застосування політик та звітності.
Основні функції:
- Застосування політик DMARC (none, quarantine, reject)
- Перевірка вирівнювання SPF та DKIM
- Аггреговані звіти DMARC
- Політики DMARC для кожного домену
ARC (Authenticated Received Chain)
ARC зберігає результати автентифікації електронної пошти при пересиланні та змінах у розсилках.
Forward Email використовує бібліотеку mailauth для перевірки та запечатування ARC.
Основні функції:
- Запечатування ARC для пересланих повідомлень
- Перевірка ARC для вхідних повідомлень
- Перевірка ланцюга через кілька пересилань
- Збереження оригінальних результатів автентифікації
Authentication Flow
Email Transport Security Protocols
Important
Forward Email реалізовує кілька рівнів захисту транспорту для захисту електронних листів під час передачі.
Forward Email реалізовує сучасні протоколи безпеки транспорту:
| RFC | Title | Status | Implementation Notes |
|---|---|---|---|
| RFC 8461 | SMTP MTA Strict Transport Security (MTA-STS) | ✅ Supported | Широко використовується на IMAP, SMTP та MX серверах. Див. create-mta-sts-cache.js та get-transporter.js |
| RFC 8460 | SMTP TLS Reporting | ✅ Supported | Через бібліотеку mailauth |
| RFC 7671 | The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance | ✅ Supported | Повна перевірка DANE для вихідних SMTP-з’єднань. Див. mx-connect PR #22 |
| RFC 6698 | The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA | ✅ Supported | Повна підтримка RFC 6698: типи використання PKIX-TA, PKIX-EE, DANE-TA, DANE-EE. Див. mx-connect PR #22 |
| RFC 8314 | Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access | ✅ Supported | TLS обов’язковий для всіх з’єднань |
| RFC 8689 | SMTP Service Extension for Requiring TLS (REQUIRETLS) | ✅ Supported | Повна підтримка розширення SMTP REQUIRETLS та заголовка "TLS-Required" |
| Протоколи безпеки транспорту забезпечують шифрування та автентифікацію електронних повідомлень під час передачі між поштовими серверами. |
Transport Security Support
| Протокол | RFC | Статус | Опис |
|---|---|---|---|
| TLS | RFC 8314 | ✅ Підтримується | Transport Layer Security - зашифровані з’єднання |
| MTA-STS | RFC 8461 | ✅ Підтримується | Mail Transfer Agent Strict Transport Security |
| DANE | RFC 7671 | ✅ Підтримується | DNS-based Authentication of Named Entities |
| REQUIRETLS | RFC 8689 | ✅ Підтримується | Вимога TLS для всього шляху доставки |
TLS (Transport Layer Security)
Forward Email застосовує шифрування TLS для всіх поштових з’єднань (SMTP, IMAP, POP3).
Ключові особливості:
- Підтримка TLS 1.2 та TLS 1.3
- Автоматичне керування сертифікатами
- Ідеальна секретність вперед (Perfect Forward Secrecy, PFS)
- Використання лише сильних наборів шифрів
MTA-STS (Mail Transfer Agent Strict Transport Security)
MTA-STS гарантує, що електронна пошта доставляється лише через TLS-зашифровані з’єднання шляхом публікації політики через HTTPS.
Forward Email реалізує MTA-STS за допомогою create-mta-sts-cache.js.
Ключові особливості:
- Автоматична публікація політики MTA-STS
- Кешування політики для підвищення продуктивності
- Запобігання атакам пониження рівня захисту
- Примусова перевірка сертифікатів
DANE (DNS-based Authentication of Named Entities)
Note
Forward Email тепер повністю підтримує DANE для вихідних SMTP-з’єднань.
DANE використовує DNSSEC для публікації інформації про TLS-сертифікати в DNS, що дозволяє поштовим серверам перевіряти сертифікати без покладання на центри сертифікації.
Ключові особливості:
- ✅ Повна перевірка DANE для вихідних SMTP-з’єднань
- ✅ Повна підтримка RFC 6698: типи використання PKIX-TA, PKIX-EE, DANE-TA, DANE-EE
- ✅ Перевірка сертифікатів за записами TLSA під час оновлення TLS
- ✅ Паралельне розв’язання TLSA для кількох MX-хостів
- ✅ Автоматичне виявлення нативного
dns.resolveTlsa(Node.js v22.15.0+, v23.9.0+) - ✅ Підтримка користувацьких резолверів для старіших версій Node.js через Tangerine
- Вимагає домени з підписом DNSSEC
Tip
Деталі реалізації: Підтримка DANE була додана через mx-connect PR #22, що забезпечує комплексну підтримку DANE/TLSA для вихідних SMTP-з’єднань.
REQUIRETLS
Tip
Forward Email — один із небагатьох провайдерів із підтримкою REQUIRETLS для користувачів.
REQUIRETLS гарантує, що електронні повідомлення доставляються лише через TLS-зашифровані з’єднання на всьому шляху доставки.
Ключові особливості:
- Прапорець для користувача в композиторі листів
- Автоматичне відхилення незашифрованої доставки
- Примусове наскрізне шифрування TLS
- Детальні сповіщення про помилки
Tip
Примусове застосування TLS для користувача: Forward Email надає прапорець у розділі My Account > Domains > Settings для примусового застосування TLS для всіх вхідних з’єднань. Якщо увімкнено, ця функція відхиляє будь-яку вхідну пошту, що не надіслана через TLS-зашифроване з’єднання, з кодом помилки 530, забезпечуючи шифрування всієї вхідної пошти під час передачі.
Transport Security Flow
Шифрування електронних повідомлень
Note
Forward Email підтримує як OpenPGP, так і S/MIME для наскрізного шифрування електронної пошти.
Forward Email підтримує шифрування OpenPGP та S/MIME:
| RFC | Назва | Статус | Примітки щодо реалізації |
|---|---|---|---|
| RFC 9580 | OpenPGP (замінює RFC 4880) | ✅ Підтримується | Через інтеграцію OpenPGP.js v6+. Див. FAQ |
| RFC 8551 | Secure/Multipurpose Internet Mail Extensions (S/MIME) Версія 4.0 Специфікація повідомлення | ✅ Підтримується | Підтримуються алгоритми RSA та ECC. Див. FAQ |
Протоколи шифрування повідомлень захищають вміст електронної пошти від прочитання будь-ким, крім призначеного отримувача, навіть якщо повідомлення перехоплено під час передачі.
Підтримка шифрування
| Протокол | RFC | Статус | Опис |
|---|---|---|---|
| OpenPGP | RFC 9580 | ✅ Підтримується | Pretty Good Privacy - шифрування з відкритим ключем |
| S/MIME | RFC 8551 | ✅ Підтримується | Secure/Multipurpose Internet Mail Extensions |
| WKD | Draft | ✅ Підтримується | Web Key Directory - автоматичне виявлення ключів |
OpenPGP (Pretty Good Privacy)
OpenPGP забезпечує наскрізне шифрування за допомогою криптографії з відкритим ключем. Forward Email підтримує OpenPGP через протокол Web Key Directory (WKD).
Основні можливості:
- Автоматичне виявлення ключів через WKD
- Підтримка PGP/MIME для зашифрованих вкладень
- Керування ключами через поштовий клієнт
- Сумісність з GPG, Mailvelope та іншими інструментами OpenPGP
Як користуватися:
- Згенеруйте пару ключів PGP у вашому поштовому клієнті
- Завантажте свій публічний ключ у WKD Forward Email
- Ваш ключ автоматично доступний для інших користувачів
- Надсилайте та отримуйте зашифровані листи без проблем
S/MIME (Secure/Multipurpose Internet Mail Extensions)
S/MIME забезпечує шифрування електронної пошти та цифрові підписи за допомогою сертифікатів X.509.
Основні можливості:
- Шифрування на основі сертифікатів
- Цифрові підписи для автентифікації повідомлень
- Вбудована підтримка у більшості поштових клієнтів
- Безпека корпоративного рівня
Як користуватися:
- Отримайте сертифікат S/MIME від Центру сертифікації
- Встановіть сертифікат у ваш поштовий клієнт
- Налаштуйте клієнт для шифрування/підпису повідомлень
- Обмінюйтеся сертифікатами з отримувачами
Шифрування поштової скриньки SQLite
Important
Forward Email забезпечує додатковий рівень безпеки за допомогою зашифрованих поштових скриньок SQLite.
Окрім шифрування на рівні повідомлень, Forward Email шифрує цілі поштові скриньки за допомогою sqleet (ChaCha20-Poly1305).
Основні можливості:
- Шифрування на основі пароля - пароль відомий лише вам
- Квантова стійкість - шифр ChaCha20-Poly1305
- Нульове знання - Forward Email не може розшифрувати вашу поштову скриньку
- Ізольованість - кожна скринька ізольована та портативна
- Неможливість відновлення - якщо ви забудете пароль, поштову скриньку буде втрачено
Порівняння шифрування
| Функція | OpenPGP | S/MIME | Шифрування SQLite |
|---|---|---|---|
| End-to-End | ✅ Так | ✅ Так | ✅ Так |
| Управління ключами | Самокероване | Видається ЦС | На основі пароля |
| Підтримка клієнтів | Потрібен плагін | Вбудована | Прозоре |
| Випадок використання | Особисте | Корпоративне | Зберігання |
| Квантова стійкість | ⚠️ Залежить від ключа | ⚠️ Залежить від сертифіката | ✅ Так |
Потік шифрування
Розширена функціональність
Стандарти формату електронних повідомлень
Note
Forward Email підтримує сучасні стандарти формату електронної пошти для багатого контенту та інтернаціоналізації.
Forward Email підтримує стандартні формати електронних повідомлень:
| RFC | Назва | Примітки щодо впровадження |
|---|---|---|
| RFC 5322 | Формат Інтернет-повідомлень | Повна підтримка |
| RFC 2045 | MIME Частина перша: Формат тіл Інтернет-повідомлень | Повна підтримка MIME |
| RFC 2046 | MIME Частина друга: Типи медіа | Повна підтримка MIME |
| RFC 2047 | MIME Частина третя: Розширення заголовків повідомлень для не-ASCII тексту | Повна підтримка MIME |
| RFC 2048 | MIME Частина четверта: Процедури реєстрації | Повна підтримка MIME |
| RFC 2049 | MIME Частина п’ята: Критерії відповідності та приклади | Повна підтримка MIME |
Стандарти формату електронної пошти визначають, як структуровані, кодуються та відображаються електронні повідомлення.
Підтримка стандартів формату
| Стандарт | RFC | Статус | Опис |
|---|---|---|---|
| MIME | RFC 2045-2049 | ✅ Підтримується | Багатофункціональні розширення Інтернет-пошти |
| SMTPUTF8 | RFC 6531 | ⚠️ Часткова | Інтернаціоналізовані адреси електронної пошти |
| EAI | RFC 6530 | ⚠️ Часткова | Інтернаціоналізація адрес електронної пошти |
| Формат повідомлення | RFC 5322 | ✅ Підтримується | Формат Інтернет-повідомлень |
| Безпека MIME | RFC 1847 | ✅ Підтримується | Безпека мультипартів для MIME |
MIME (Багатофункціональні розширення Інтернет-пошти)
MIME дозволяє електронним листам містити кілька частин з різними типами контенту (текст, HTML, вкладення тощо).
Підтримувані функції MIME:
- Багаточастинні повідомлення (mixed, alternative, related)
- Заголовки Content-Type
- Кодування Content-Transfer-Encoding (7bit, 8bit, quoted-printable, base64)
- Вбудовані зображення та вкладення
- Багатий HTML-контент
SMTPUTF8 та інтернаціоналізація адрес електронної пошти
Warning
Підтримка SMTPUTF8 часткова — не всі функції повністю реалізовані.
SMTPUTF8 дозволяє електронним адресам містити не-ASCII символи (наприклад, 用户@例え.jp).
Поточний стан:
- ⚠️ Часткова підтримка інтернаціоналізованих електронних адрес
- ✅ UTF-8 вміст у тілі повідомлень
- ⚠️ Обмежена підтримка не-ASCII локальних частин
Протоколи календарів і контактів
Note
Forward Email забезпечує повну підтримку CalDAV і CardDAV для синхронізації календарів і контактів.
Forward Email підтримує CalDAV і CardDAV через бібліотеку caldav-adapter:
| RFC | Назва | Статус | Примітки щодо реалізації |
|---|---|---|---|
| RFC 4791 | Розширення календарів для WebDAV (CalDAV) | ✅ Підтримується | Доступ і керування календарем |
| RFC 6352 | CardDAV: розширення vCard для WebDAV | ✅ Підтримується | Доступ і керування контактами |
| RFC 5545 | Основна специфікація інтернет-календарів і планування (iCalendar) | ✅ Підтримується | Підтримка формату iCalendar |
| RFC 6350 | Специфікація формату vCard | ✅ Підтримується | Підтримка формату vCard 4.0 |
| RFC 6638 | Розширення планування для CalDAV | ✅ Підтримується | Планування CalDAV з підтримкою iMIP. Див. commit c4d1629 |
| RFC 5546 | Протокол незалежної від транспорту взаємодії iCalendar (iTIP) | ✅ Підтримується | Підтримка iTIP для методів REQUEST, REPLY, CANCEL і VFREEBUSY. Див. commit c4d1629 |
| RFC 6047 | Протокол взаємодії на основі повідомлень iCalendar (iMIP) | ✅ Підтримується | Запрошення на календар по електронній пошті з посиланнями для відповіді. Див. commit c4d1629 |
CalDAV і CardDAV — це протоколи, які дозволяють отримувати доступ, ділитися та синхронізувати дані календарів і контактів між пристроями.
Підтримка CalDAV і CardDAV
| Протокол | RFC | Статус | Опис |
|---|---|---|---|
| CalDAV | RFC 4791 | ✅ Підтримується | Доступ і синхронізація календаря |
| CardDAV | RFC 6352 | ✅ Підтримується | Доступ і синхронізація контактів |
| iCalendar | RFC 5545 | ✅ Підтримується | Формат даних календаря |
| vCard | RFC 6350 | ✅ Підтримується | Формат даних контактів |
| VTODO | RFC 5545 | ✅ Підтримується | Підтримка завдань/нагадувань |
| Планування CalDAV | RFC 6638 | ✅ Підтримується | Розширення планування календаря |
| iTIP | RFC 5546 | ✅ Підтримується | Незалежна від транспорту взаємодія |
| iMIP | RFC 6047 | ✅ Підтримується | Запрошення на календар по електронній пошті |
CalDAV (Доступ до календаря)
CalDAV дозволяє отримувати доступ і керувати календарями з будь-якого пристрою або додатку.
Основні можливості:
- Синхронізація між кількома пристроями
- Спільні календарі
- Підписки на календарі
- Запрошення на події та відповіді на них
- Повторювані події
- Підтримка часових поясів
Сумісні клієнти:
- Apple Calendar (macOS, iOS)
- Mozilla Thunderbird
- Evolution
- GNOME Calendar
- Будь-який клієнт, сумісний з CalDAV
CardDAV (Доступ до контактів)
CardDAV дозволяє отримувати доступ і керувати контактами з будь-якого пристрою або додатку.
Основні можливості:
- Синхронізація між кількома пристроями
- Спільні адресні книги
- Групи контактів
- Підтримка фотографій
- Користувацькі поля
- Підтримка vCard 4.0
Сумісні клієнти:
- Apple Contacts (macOS, iOS)
- Mozilla Thunderbird
- Evolution
- GNOME Contacts
- Будь-який клієнт, сумісний з CardDAV
Завдання та нагадування (CalDAV VTODO)
Tip
Forward Email підтримує завдання та нагадування через CalDAV VTODO.
VTODO є частиною формату iCalendar і дозволяє керувати завданнями через CalDAV.
Основні можливості:
- Створення та керування завданнями
- Дати виконання та пріоритети
- Відстеження виконання завдань
- Повторювані завдання
- Списки/категорії завдань
Сумісні клієнти:
- Apple Reminders (macOS, iOS)
- Mozilla Thunderbird (з Lightning)
- Evolution
- GNOME To Do
- Будь-який клієнт CalDAV з підтримкою VTODO
Потік синхронізації CalDAV/CardDAV
Розширення календаря, які НЕ підтримуються
Наступні розширення календаря НЕ підтримуються:
| RFC | Назва | Причина |
|---|---|---|
| RFC 4918 | HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) | CalDAV використовує концепції WebDAV, але не реалізує повністю RFC 4918 |
| RFC 6578 | Collection Synchronization for WebDAV | Не реалізовано |
| RFC 3744 | WebDAV Access Control Protocol | Не реалізовано |
Фільтрація електронних повідомлень
Important
Forward Email надає повну підтримку Sieve та ManageSieve для серверної фільтрації електронної пошти. Створюйте потужні правила для автоматичного сортування, фільтрації, пересилання та відповіді на вхідні повідомлення.
Sieve (RFC 5228)
Sieve — це стандартизована, потужна мова сценаріїв для серверної фільтрації електронної пошти. Forward Email реалізує всебічну підтримку Sieve з 24 розширеннями.
Вихідний код: helpers/sieve/
Підтримувані основні RFC Sieve
| RFC | Назва | Статус |
|---|---|---|
| RFC 5228 | Sieve: Мова фільтрації електронної пошти | ✅ Повна підтримка |
| RFC 5429 | Розширення Sieve для відхилення та розширеного відхилення | ✅ Повна підтримка |
| RFC 5230 | Розширення Sieve для відпустки | ✅ Повна підтримка |
| RFC 6131 | Розширення Sieve для відпустки: параметр "Seconds" | ✅ Повна підтримка |
| RFC 5232 | Розширення Sieve для прапорців Imap4flags | ✅ Повна підтримка |
| RFC 5173 | Розширення Sieve для тіла повідомлення | ✅ Повна підтримка |
| RFC 5229 | Розширення Sieve для змінних | ✅ Повна підтримка |
| RFC 5231 | Розширення Sieve для відношень | ✅ Повна підтримка |
| RFC 4790 | Реєстр колацій протоколів інтернет-застосунків | ✅ Повна підтримка |
| RFC 3894 | Розширення Sieve: копіювання без побічних ефектів | ✅ Повна підтримка |
| RFC 5293 | Розширення Sieve для редагування заголовків | ✅ Повна підтримка |
| RFC 5260 | Розширення Sieve для дати та індексів | ✅ Повна підтримка |
| RFC 5435 | Розширення Sieve для сповіщень | ✅ Повна підтримка |
| RFC 5183 | Розширення Sieve для середовища | ✅ Повна підтримка |
| RFC 5490 | Розширення Sieve для перевірки статусу поштової скриньки | ✅ Повна підтримка |
| RFC 8579 | Розширення Sieve для доставки до спеціальних поштових скриньок | ✅ Повна підтримка |
| RFC 7352 | Розширення Sieve для виявлення дублюючих доставок | ✅ Повна підтримка |
| RFC 5463 | Розширення Sieve Ihave | ✅ Повна підтримка |
| RFC 5233 | Розширення Sieve для субадресації | ✅ Повна підтримка |
| draft-ietf-sieve-regex | Розширення Sieve для регулярних виразів | ✅ Повна підтримка |
Підтримувані розширення Sieve
| Розширення | Опис | Інтеграція |
|---|---|---|
fileinto |
Поміщення повідомлень у конкретні папки | Повідомлення зберігаються у вказаній папці IMAP |
reject / ereject |
Відхилення повідомлень з помилкою | Відхилення SMTP з повідомленням про повернення |
vacation |
Автоматичні відповіді під час відпустки/відсутності | Черга через Emails.queue з обмеженням частоти |
vacation-seconds |
Точні інтервали відповіді під час відпустки | TTL з параметра :seconds |
imap4flags |
Встановлення прапорців IMAP (\Seen, \Flagged тощо) | Прапорці застосовуються під час збереження повідомлення |
envelope |
Перевірка відправника/одержувача конверта | Доступ до даних SMTP конверта |
body |
Перевірка вмісту тіла повідомлення | Повне співпадіння тексту тіла |
variables |
Збереження та використання змінних у скриптах | Розгортання змінних з модифікаторами |
relational |
Реляційні порівняння | :count, :value з gt/lt/eq |
comparator-i;ascii-numeric |
Числові порівняння | Порівняння числових рядків |
copy |
Копіювання повідомлень під час перенаправлення | Прапорець :copy для fileinto/redirect |
editheader |
Додавання або видалення заголовків повідомлення | Заголовки змінюються перед збереженням |
date |
Перевірка значень дати/часу | Тести currentdate та дати заголовків |
index |
Доступ до конкретних входжень заголовків | :index для багатозначних заголовків |
regex |
Пошук за регулярними виразами | Повна підтримка regex у тестах |
enotify |
Надсилання сповіщень | Сповіщення mailto: через Emails.queue |
environment |
Доступ до інформації про середовище | Домен, хост, віддалена IP з сесії |
mailbox |
Перевірка існування поштової скриньки | Тест mailboxexists |
special-use |
Поміщення у спеціальні поштові скриньки | Відображення \Junk, \Trash тощо у папки |
duplicate |
Виявлення дублікатів повідомлень | Відстеження дублікатів на основі Redis |
ihave |
Перевірка доступності розширення | Перевірка можливостей під час виконання |
subaddress |
Доступ до частин адреси user+detail | Частини адреси :user та :detail |
Розширення Sieve, які НЕ підтримуються
| Розширення | RFC | Причина |
|---|---|---|
include |
RFC 6609 | Ризик безпеки (ін’єкція скриптів), потребує глобального збереження скриптів |
mboxmetadata / servermetadata |
RFC 5490 | Потребує розширення IMAP METADATA |
fcc |
RFC 8580 | Потребує інтеграції з папкою Відправлені |
encoded-character |
RFC 5228 | Потрібні зміни парсера для синтаксису $ |
foreverypart / mime / extracttext |
RFC 5703 | Складна маніпуляція MIME-деревом |
Потік обробки Sieve
Функції безпеки
Реалізація Sieve у Forward Email включає комплексні заходи безпеки:
- Захист від CVE-2023-26430: Запобігає циклам перенаправлень та атакам поштового бомбардування
- Обмеження частоти: Ліміти на перенаправлення (10/повідомлення, 100/день) та відповіді відпустки
- Перевірка заборонених адрес: Адреси перенаправлення перевіряються за забороненим списком
- Захищені заголовки: Заголовки DKIM, ARC та автентифікації не можна змінювати через editheader
- Обмеження розміру скрипта: Встановлено максимальний розмір скрипта
- Таймаути виконання: Скрипти припиняються, якщо час виконання перевищує ліміт
Приклади скриптів Sieve
Поміщення розсилок у папку:
require ["fileinto"];
if header :contains "List-Id" "newsletter" {
fileinto "Newsletters";
}
Автовідповідач відпустки з точним таймінгом:
require ["vacation", "vacation-seconds"];
vacation :seconds 3600 :subject "Out of Office"
"Я зараз відсутній і відповім протягом 24 годин.";
Фільтрація спаму з прапорцями:
require ["fileinto", "imap4flags"];
if header :contains "X-Spam-Status" "Yes" {
setflag "\\Seen";
fileinto "Junk";
}
Складне фільтрування з використанням змінних:
require ["variables", "fileinto", "regex"];
if header :regex "From" "(.+)@example\\.com" {
set :lower "sender" "${1}";
fileinto "Contacts/${sender}";
}
Tip
Для повної документації, прикладів скриптів та інструкцій з налаштування дивіться FAQ: Чи підтримуєте ви фільтрацію пошти Sieve?
ManageSieve (RFC 5804)
Forward Email надає повну підтримку протоколу ManageSieve для віддаленого керування скриптами Sieve.
Вихідний код: managesieve-server.js
| RFC | Назва | Статус |
|---|---|---|
| RFC 5804 | Протокол для віддаленого керування скриптами Sieve | ✅ Повна підтримка |
Конфігурація сервера ManageSieve
| Налаштування | Значення |
|---|---|
| Сервер | imap.forwardemail.net |
| Порт (STARTTLS) | 2190 (рекомендовано) |
| Порт (Implicit TLS) | 4190 |
| Аутентифікація | PLAIN (через TLS) |
Примітка: Порт 2190 використовує STARTTLS (покращення з plain до TLS) і сумісний з більшістю клієнтів ManageSieve, включно з sieve-connect. Порт 4190 використовує implicit TLS (TLS з початку з’єднання) для клієнтів, які це підтримують.
Підтримувані команди ManageSieve
| Команда | Опис |
|---|---|
AUTHENTICATE |
Аутентифікація за допомогою механізму PLAIN |
CAPABILITY |
Перелік можливостей та розширень сервера |
HAVESPACE |
Перевірка, чи можна зберегти скрипт |
PUTSCRIPT |
Завантаження нового скрипта |
LISTSCRIPTS |
Перелік усіх скриптів з активним статусом |
SETACTIVE |
Активувати скрипт |
GETSCRIPT |
Завантажити скрипт |
DELETESCRIPT |
Видалити скрипт |
RENAMESCRIPT |
Перейменувати скрипт |
CHECKSCRIPT |
Перевірка синтаксису скрипта |
NOOP |
Підтримувати з’єднання активним |
LOGOUT |
Завершити сесію |
Сумісні клієнти ManageSieve
- Thunderbird: Вбудована підтримка Sieve через Sieve додаток
- Roundcube: ManageSieve плагін
- KMail: Рідна підтримка ManageSieve
- sieve-connect: Клієнт командного рядка
- Будь-який клієнт, що відповідає RFC 5804
Потік протоколу ManageSieve
Веб-інтерфейс та API
Окрім ManageSieve, Forward Email надає:
- Веб-панель: Створення та керування Sieve скриптами через веб-інтерфейс у Мій акаунт → Домени → Псевдоніми → Sieve скрипти
- REST API: Програмний доступ до керування Sieve скриптами через Forward Email API
Tip
Для детальних інструкцій з налаштування та конфігурації клієнта дивіться FAQ: Чи підтримуєте ви фільтрацію електронної пошти за допомогою Sieve?
Оптимізація зберігання
Important
Перший у галузі технологія зберігання: Forward Email — це єдиний поштовий провайдер у світі, який поєднує дедуплікацію вкладень із стисненням Brotli вмісту електронної пошти. Ця двошарова оптимізація дає вам в 2-3 рази більше ефективного зберігання порівняно з традиційними поштовими провайдерами.
Forward Email реалізує дві революційні техніки оптимізації зберігання, які суттєво зменшують розмір поштової скриньки, зберігаючи повну відповідність RFC та цілісність повідомлень:
- Дедуплікація вкладень — усуває дублікати вкладень у всіх листах
- Стиснення Brotli — зменшує обсяг зберігання на 46-86% для метаданих і на 50% для вкладень
Архітектура: двошарова оптимізація зберігання
Дедуплікація вкладень
Forward Email реалізує дедуплікацію вкладень на основі перевіреного підходу WildDuck, адаптованого для зберігання в SQLite.
Note
Що дедуплікується: "Вкладення" означає закодований вміст MIME-вузла (base64 або quoted-printable), а не декодований файл. Це зберігає дійсність підписів DKIM та GPG.
Як це працює
Оригінальна реалізація WildDuck (MongoDB GridFS):
IMAP сервер Wild Duck виконує дедуплікацію вкладень. "Вкладення" в цьому випадку означає base64 або quoted-printable закодований вміст MIME-вузла, а не декодований файл. Хоча використання закодованого вмісту призводить до багатьох хибних негативів (той самий файл у різних листах може вважатися різними вкладеннями), це необхідно для гарантії дійсності різних схем підписів (DKIM, GPG тощо). Повідомлення, отримане з Wild Duck, виглядає точно так само, як і повідомлення, що зберігалося, хоча Wild Duck розбирає повідомлення у вигляді дерева об’єктів і відновлює повідомлення при отриманні. Реалізація SQLite у Forward Email:
Forward Email адаптує цей підхід для зашифрованого зберігання SQLite за наступним процесом:
- Обчислення хешу: Коли знаходиться вкладення, хеш обчислюється за допомогою бібліотеки
rev-hashз тіла вкладення - Пошук: Перевірка, чи існує вкладення з відповідним хешем у таблиці
Attachments - Підрахунок посилань:
- Якщо існує: Збільшити лічильник посилань на 1 і магічний лічильник на випадкове число
- Якщо нове: Створити новий запис вкладення з лічильником = 1
- Безпека видалення: Використовує систему подвійних лічильників (посилання + магічний) для запобігання хибним спрацьовуванням
- Збір сміття: Вкладення видаляються негайно, коли обидва лічильники досягають нуля
Вихідний код: helpers/attachment-storage.js
Потік дедуплікації
Система магічних чисел
Forward Email використовує систему "магічних чисел" WildDuck (натхненну Mail.ru) для запобігання хибним спрацьовуванням під час видалення:
- Кожному повідомленню присвоюється випадкове число
- Магічний лічильник вкладення збільшується на це випадкове число при додаванні повідомлення
- Магічний лічильник зменшується на те саме число при видаленні повідомлення
- Вкладення видаляється лише коли обидва лічильники (посилання + магічний) досягають нуля
Ця система подвійних лічильників гарантує, що якщо щось піде не так під час видалення (наприклад, збій, помилка мережі), вкладення не буде видалено передчасно.
Ключові відмінності: WildDuck vs Forward Email
| Функція | WildDuck (MongoDB) | Forward Email (SQLite) |
|---|---|---|
| Сховище | MongoDB GridFS (порційно) | SQLite BLOB (прямо) |
| Алгоритм хешування | SHA256 | rev-hash (на основі SHA-256) |
| Підрахунок посилань | ✅ Так | ✅ Так |
| Магічні числа | ✅ Так (натхненна Mail.ru) | ✅ Так (та сама система) |
| Збір сміття | Відкладена (окреме завдання) | Негайна (при нульових лічильниках) |
| Стиснення | ❌ Відсутнє | ✅ Brotli (див. нижче) |
| Шифрування | ❌ Опціонально | ✅ Завжди (ChaCha20-Poly1305) |
Стиснення Brotli
Important
Світова Прем'єра: Forward Email — це єдиний у світі поштовий сервіс, який використовує стиснення Brotli для вмісту електронної пошти. Це забезпечує економію місця від 46 до 86% поверх дедуплікації вкладень.
Forward Email реалізує стиснення Brotli як для тіл вкладень, так і для метаданих повідомлень, забезпечуючи значну економію місця при збереженні сумісності з попередніми версіями.
Реалізація: helpers/msgpack-helpers.js
Що стискається
1. Тіла вкладень (encodeAttachmentBody)
- Старі формати: Hex-кодований рядок (в 2 рази більший розмір) або сирий Buffer
- Новий формат: Brotli-стиснутий Buffer з магічним заголовком "FEBR"
- Рішення про стиснення: Стискає лише якщо це економить місце (враховує 4-байтовий заголовок)
- Економія місця: До 50% (hex → нативний BLOB)
2. Метадані повідомлення (
encodeMetadata)
Включає: mimeTree, headers, envelope, flags
- Старий формат: JSON текстовий рядок
- Новий формат: Buffer, стиснутий Brotli
- Економія місця: 46-86% залежно від складності повідомлення
Налаштування стиснення
// Параметри стиснення Brotli, оптимізовані для швидкості (рівень 4 — хороший баланс)
const BROTLI_COMPRESS_OPTIONS = {
params: {
[zlib.constants.BROTLI_PARAM_QUALITY]: 4
}
};
Чому рівень 4?
- Швидке стиснення/розпакування: Обробка за субмілісекунди
- Хороше співвідношення стиснення: економія 46-86%
- Збалансована продуктивність: оптимально для операцій з електронною поштою в реальному часі
Магічний заголовок: "FEBR"
Forward Email використовує 4-байтовий магічний заголовок для ідентифікації стиснутих тіл вкладень:
"FEBR" = Forward Email BRotli
Hex: 0x46 0x45 0x42 0x52
Навіщо магічний заголовок?
- Виявлення формату: миттєво визначає стиснені чи нестиснені дані
- Зворотна сумісність: старі hex-рядки та сирі Buffers все ще працюють
- Уникнення колізій: "FEBR" малоймовірно з’явиться на початку легітимних даних вкладення
Процес стиснення
Процес розпакування
Зворотна сумісність
Всі функції декодування автоматично визначають формат зберігання:
| Формат | Метод виявлення | Обробка |
|---|---|---|
| Стиснення Brotli | Перевірка магічного заголовка "FEBR" | Розпакування за допомогою zlib.brotliDecompressSync() |
| Сирий Buffer | Buffer.isBuffer() без магічного заголовка |
Повертається без змін |
| Hex рядок | Перевірка парної довжини + символів [0-9a-f] | Декодування через Buffer.from(value, 'hex') |
| JSON рядок | Перевірка першого символу { або [ |
Парсинг через JSON.parse() |
Це гарантує нульову втрату даних під час міграції зі старих форматів у нові.
Статистика економії місця
Виміряна економія на основі продуктивних даних:
| Тип даних | Старий формат | Новий формат | Економія |
|---|---|---|---|
| Тіла вкладень | Hex-кодований рядок (2x) | Стиснутий Brotli BLOB | 50% |
| Метадані повідомлень | JSON текст | Стиснутий Brotli BLOB | 46-86% |
| Прапорці поштової скриньки | JSON текст | Стиснутий Brotli BLOB | 60-80% |
Джерело: helpers/migrate-storage-format.js
Процес міграції
Forward Email забезпечує автоматичну, ідемпотентну міграцію зі старих у нові формати зберігання: // Статистика міграції відстежується: { attachmentsMigrated: 0, messagesMigrated: 0, mailboxesMigrated: 0, bytesSaved: 0 // Загальна кількість байтів, збережених завдяки стисненню }
**Кроки міграції:**
1. Тіла вкладень: шістнадцяткове кодування → нативний BLOB (економія 50%)
2. Метадані повідомлень: JSON текст → BLOB, стиснений Brotli (економія 46-86%)
3. Прапорці поштової скриньки: JSON текст → BLOB, стиснений Brotli (економія 60-80%)
**Джерело:** [`helpers/migrate-storage-format.js`](https://github.com/forwardemail/forwardemail.net/blob/master/helpers/migrate-storage-format.js)
---
### Ефективність комбінованого зберігання {#combined-storage-efficiency}
> \[!TIP]
> **Реальний вплив:** Завдяки дедуплікації вкладень + стисненню Brotli користувачі Forward Email отримують **в 2-3 рази ефективніше зберігання**, порівняно з традиційними поштовими провайдерами.
**Приклад сценарію:**
Традиційний поштовий провайдер (поштова скринька 1ГБ):
* 1ГБ дискового простору = 1ГБ листів
* Без дедуплікації: однаковий вкладений файл зберігається 10 разів = 10-кратне марнування простору
* Без стиснення: повні JSON метадані зберігаються = 2-3-кратне марнування простору
Forward Email (поштова скринька 1ГБ):
* 1ГБ дискового простору ≈ **2-3ГБ листів** (ефективне зберігання)
* Дедуплікація: однаковий вкладений файл зберігається один раз, посилається 10 разів
* Стиснення: 46-86% економії на метаданих, 50% на вкладеннях
* Шифрування: ChaCha20-Poly1305 (без накладних витрат на зберігання)
**Таблиця порівняння:**
| Провайдер | Технологія зберігання | Ефективне зберігання (поштова скринька 1ГБ) |
| ----------------- | -------------------------------------------- | -------------------------------------------- |
| Gmail | Відсутня | 1ГБ |
| iCloud | Відсутня | 1ГБ |
| Outlook.com | Відсутня | 1ГБ |
| Fastmail | Відсутня | 1ГБ |
| ProtonMail | Лише шифрування | 1ГБ |
| Tutanota | Лише шифрування | 1ГБ |
| **Forward Email** | **Дедуплікація + Стиснення + Шифрування** | **2-3ГБ** ✨ |
### Технічні деталі реалізації {#technical-implementation-details}
**Продуктивність:**
* Brotli рівень 4: стиснення/розпакування за субмілісекунди
* Відсутність штрафу за продуктивність через стиснення
* SQLite FTS5: пошук менше 50 мс на NVMe SSD
**Безпека:**
* Стиснення відбувається **після** шифрування (база даних SQLite зашифрована)
* Шифрування ChaCha20-Poly1305 + стиснення Brotli
* Нульове знання: лише користувач має пароль для розшифрування
**Відповідність RFC:**
* Отримані повідомлення виглядають **точно так само**, як і збережені
* Підписи DKIM залишаються дійсними (збережено кодування вмісту)
* Підписи GPG залишаються дійсними (без змін підписаного вмісту)
### Чому жоден інший провайдер цього не робить {#why-no-other-provider-does-this}
**Складність:**
* Потрібна глибока інтеграція з шаром зберігання
* Зворотна сумісність складна
* Міграція зі старих форматів складна
**Проблеми з продуктивністю:**
* Стиснення додає навантаження на CPU (вирішено Brotli рівень 4)
* Розпакування при кожному читанні (вирішено кешуванням SQLite)
**Перевага Forward Email:**
* Побудовано з нуля з урахуванням оптимізації
* SQLite дозволяє пряме маніпулювання BLOB
* Зашифровані бази даних для кожного користувача дозволяють безпечне стиснення
---
---
## Сучасні функції {#modern-features}
## Повний REST API для керування електронною поштою {#complete-rest-api-for-email-management}
> \[!TIP]
> Forward Email надає комплексний REST API з 39 кінцевими точками для програмного керування електронною поштою.
> \[!TIP]
> **Унікальна галузева функція:** На відміну від усіх інших поштових сервісів, Forward Email надає повний програмний доступ до вашої поштової скриньки, календаря, контактів, повідомлень і папок через комплексний REST API. Це прямий доступ до вашого зашифрованого файлу бази даних SQLite, що зберігає всі ваші дані.
Forward Email пропонує повний REST API, який забезпечує безпрецедентний доступ до ваших поштових даних. Жоден інший поштовий сервіс (включно з Gmail, iCloud, Outlook, ProtonMail, Tuta або Fastmail) не пропонує такого рівня комплексного, прямого доступу до бази даних.
**Документація API:** <https://forwardemail.net/en/email-api>
### Категорії API (39 кінцевих точок) {#api-categories-39-endpoints}
**1. Messages API** (5 кінцевих точок) - Повний CRUD для електронних повідомлень:
* `GET /v1/messages` - Список повідомлень з 15+ розширеними параметрами пошуку (жоден інший сервіс цього не пропонує)
* `POST /v1/messages` - Створення/відправка повідомлень
* `GET /v1/messages/:id` - Отримати повідомлення
* `PUT /v1/messages/:id` - Оновити повідомлення (позначки, папки)
* `DELETE /v1/messages/:id` - Видалити повідомлення
*Приклад: Знайти всі рахунки за останній квартал з вкладеннями:*
```bash
curl -u "alias@domain.com:password" \
"https://api.forwardemail.net/v1/messages?q=subject:invoice+has:attachment+after:2024-01-01+before:2024-04-01"
Див. Документація розширеного пошуку
2. Folders API (5 кінцевих точок) - Повне керування IMAP-папками через REST:
GET /v1/folders- Список усіх папокPOST /v1/folders- Створити папкуGET /v1/folders/:id- Отримати папкуPUT /v1/folders/:id- Оновити папкуDELETE /v1/folders/:id- Видалити папку
3. Contacts API (5 кінцевих точок) - Зберігання контактів CardDAV через REST:
GET /v1/contacts- Список контактівPOST /v1/contacts- Створити контакт (формат vCard)GET /v1/contacts/:id- Отримати контактPUT /v1/contacts/:id- Оновити контактDELETE /v1/contacts/:id- Видалити контакт
4. Calendars API (5 кінцевих точок) - Керування календарними контейнерами:
GET /v1/calendars- Список календарних контейнерівPOST /v1/calendars- Створити календар (наприклад, "Робочий календар", "Особистий календар")GET /v1/calendars/:id- Отримати календарPUT /v1/calendars/:id- Оновити календарDELETE /v1/calendars/:id- Видалити календар
5. Calendar Events API (5 кінцевих точок) - Планування подій у календарях:
GET /v1/calendar-events- Список подійPOST /v1/calendar-events- Створити подію з учасникамиGET /v1/calendar-events/:id- Отримати подіюPUT /v1/calendar-events/:id- Оновити подіюDELETE /v1/calendar-events/:id- Видалити подію
Приклад: Створити подію в календарі:
curl -u "alias@domain.com:password" \
-X POST \
-H "Content-Type: application/json" \
-d '{"title":"Team Meeting","start":"2024-12-20T10:00:00Z","attendees":["team@example.com"],"calendar_id":"calendar123"}' \
https://api.forwardemail.net/v1/calendar-events
Технічні деталі
- Аутентифікація: Проста аутентифікація
alias:password(без складнощів OAuth) - Продуктивність: Час відповіді менше 50 мс з SQLite FTS5 та NVMe SSD зберіганням
- Нульова затримка мережі: Прямий доступ до бази даних, без проксування через зовнішні сервіси
Реальні сценарії використання
-
Аналітика електронної пошти: Створення кастомних панелей для відстеження обсягу пошти, часу відповіді, статистики відправників
-
Автоматизовані робочі процеси: Тригери дій на основі вмісту листів (обробка рахунків, підтримка заявок)
-
Інтеграція з CRM: Автоматична синхронізація листування з CRM
-
Відповідність та пошук: Пошук і експорт листів для юридичних/регуляторних вимог
-
Кастомні поштові клієнти: Створення спеціалізованих інтерфейсів для вашого робочого процесу
-
Бізнес-аналітика: Аналіз комунікаційних патернів, швидкості відповіді, залучення клієнтів
-
Управління документами: Автоматичне вилучення та категоризація вкладень
Forward Email пропонує сучасний REST API, який забезпечує повний контроль над обліковими записами електронної пошти, доменами, псевдонімами та повідомленнями. Цей API є потужною альтернативою JMAP і надає функціональність, що виходить за межі традиційних поштових протоколів.
| Категорія | Кінцеві точки | Опис |
|---|---|---|
| Управління обліковим записом | 8 | Користувацькі облікові записи, аутентифікація, налаштування |
| Управління доменом | 12 | Користувацькі домени, DNS, верифікація |
| Управління псевдонімами | 6 | Псевдоніми електронної пошти, переадресація, catch-all |
| Управління повідомленнями | 7 | Відправка, отримання, пошук, видалення повідомлень |
| Календарі та контакти | 4 | Доступ CalDAV/CardDAV через API |
| Логи та аналітика | 2 | Логи електронної пошти, звіти про доставку |
Основні можливості API
Розширений пошук:
API надає потужні можливості пошуку з синтаксисом запитів, схожим на Gmail:
GET /v1/messages?q=subject:invoice+has:attachment+after:2024-01-01+before:2024-04-01
Підтримувані оператори пошуку:
from:- Пошук за відправникомto:- Пошук за отримувачемsubject:- Пошук за темоюhas:attachment- Повідомлення з вкладеннямиis:unread- Непрочитані повідомленняis:starred- Позначені зірочкою повідомленняafter:- Повідомлення після датиbefore:- Повідомлення до датиlabel:- Повідомлення з міткоюfilename:- Ім'я файлу вкладення
Управління подіями календаря:
GET /v1/calendar-events
POST /v1/calendar-events
PUT /v1/calendar-events/:id
DELETE /v1/calendar-events/:id
Інтеграції через вебхуки:
API підтримує вебхуки для миттєвих сповіщень про події електронної пошти (отримано, надіслано, повернено тощо).
Аутентифікація:
- Аутентифікація за API ключем
- Підтримка OAuth 2.0
- Обмеження швидкості: 1000 запитів/годину
Формат даних:
- JSON запити/відповіді
- RESTful дизайн
- Підтримка пагінації
Безпека:
- Тільки HTTPS
- Ротація API ключів
- Білий список IP (опційно)
- Підписування запитів (опційно)
Архітектура API
Push-повідомлення iOS
Tip
Forward Email підтримує нативні push-повідомлення iOS через XAPPLEPUSHSERVICE для миттєвої доставки електронної пошти.
Important
Унікальна особливість: Forward Email — один із небагатьох open-source поштових серверів, який підтримує нативні push-повідомлення iOS для пошти, контактів і календарів через розширення IMAP XAPPLEPUSHSERVICE. Це було відтворено з протоколу Apple і забезпечує миттєву доставку на пристрої iOS без витрат батареї.
Forward Email реалізує власне розширення Apple XAPPLEPUSHSERVICE, забезпечуючи нативні push-повідомлення для пристроїв iOS без необхідності фонових опитувань.
Як це працює
XAPPLEPUSHSERVICE — нестандартне розширення IMAP, яке дозволяє додатку Mail на iOS отримувати миттєві push-повідомлення при надходженні нових листів.
Forward Email реалізує власну інтеграцію служби Apple Push Notification (APNs) для IMAP, що дозволяє додатку Mail на iOS отримувати миттєві push-повідомлення при надходженні нових листів.
Ключові особливості
Миттєва доставка:
- Push-повідомлення надходять за секунди
- Відсутнє енергозатратне фонове опитування
- Працює навіть коли додаток Mail закритий
-
Миттєва доставка: Листи, події календаря та контакти з’являються на вашому iPhone/iPad одразу, а не за розкладом опитування
-
Енергоефективність: Використовує інфраструктуру push Apple замість постійних IMAP-з’єднань
-
Push за темами: Підтримує push-повідомлення для конкретних поштових скриньок, а не лише INBOX
-
Без сторонніх додатків: Працює з нативними додатками iOS Mail, Calendar і Contacts Нативна інтеграція:
-
Вбудовано в додаток iOS Mail
-
Не потрібні сторонні додатки
-
Безшовний користувацький досвід
Орієнтовано на конфіденційність:
- Токени пристроїв зашифровані
- Вміст повідомлень не надсилається через APNS
- Надсилається лише сповіщення про "нову пошту"
Енергоефективність:
- Відсутнє постійне опитування IMAP
- Пристрій спить до отримання сповіщення
- Мінімальний вплив на батарею
Що робить це особливим
Important
Більшість поштових провайдерів не підтримують XAPPLEPUSHSERVICE, змушуючи пристрої iOS опитувати пошту кожні 15 хвилин.
Більшість поштових серверів з відкритим кодом (включно з Dovecot, Postfix, Cyrus IMAP) НЕ підтримують push-сповіщення iOS. Користувачі повинні або:
- Використовувати IMAP IDLE (підтримує відкритий зв’язок, швидко розряджає батарею)
- Використовувати опитування (перевірка кожні 15-30 хвилин, затримка сповіщень)
- Використовувати пропрієтарні поштові додатки з власною push-інфраструктурою
Forward Email забезпечує той самий миттєвий досвід push-сповіщень, як і комерційні сервіси, такі як Gmail, iCloud та Fastmail.
Порівняння з іншими провайдерами:
| Провайдер | Підтримка Push | Інтервал опитування | Вплив на батарею |
|---|---|---|---|
| Forward Email | ✅ Нативний Push | Миттєвий | Мінімальний |
| Gmail | ✅ Нативний Push | Миттєвий | Мінімальний |
| iCloud | ✅ Нативний Push | Миттєвий | Мінімальний |
| Yahoo | ✅ Нативний Push | Миттєвий | Мінімальний |
| Outlook.com | ❌ Опитування | 15 хвилин | Помірний |
| Fastmail | ❌ Опитування | 15 хвилин | Помірний |
| ProtonMail | ⚠️ Лише через Bridge | Через Bridge | Високий |
| Tutanota | ❌ Лише додаток | Н/Д | Н/Д |
Деталі реалізації
Відповідь IMAP CAPABILITY:
* CAPABILITY IMAP4rev1 ... XAPPLEPUSHSERVICE ...
Процес реєстрації:
- Додаток iOS Mail виявляє можливість XAPPLEPUSHSERVICE
- Додаток реєструє токен пристрою у Forward Email
- Forward Email зберігає токен і пов’язує його з обліковим записом
- Коли надходить нова пошта, Forward Email надсилає push через APNS
- iOS пробуджує додаток Mail для отримання нових повідомлень
Безпека:
- Токени пристроїв зашифровані у стані збереження
- Токени автоматично оновлюються після закінчення терміну дії
- Вміст повідомлень не передається APNS
- Підтримується наскрізне шифрування
- Розширення IMAP:
XAPPLEPUSHSERVICE - Вихідний код: WildDuck Issue #711
- Налаштування: Автоматичне — не потребує конфігурації, працює з коробки з додатком iOS Mail
Порівняння з іншими сервісами
| Сервіс | Підтримка iOS Push | Метод |
|---|---|---|
| Forward Email | ✅ Так | XAPPLEPUSHSERVICE (зворотна розробка) |
| Gmail | ✅ Так | Пропрієтарний додаток Gmail + Google push |
| iCloud Mail | ✅ Так | Нативна інтеграція Apple |
| Outlook.com | ✅ Так | Пропрієтарний додаток Outlook + Microsoft push |
| Fastmail | ✅ Так | XAPPLEPUSHSERVICE |
| Dovecot | ❌ Ні | Лише IMAP IDLE або опитування |
| Postfix | ❌ Ні | Лише IMAP IDLE або опитування |
| Cyrus IMAP | ❌ Ні | Лише IMAP IDLE або опитування |
Gmail Push:
Gmail використовує пропрієтарну систему push, яка працює лише з додатком Gmail. Додаток iOS Mail мусить опитувати сервери Gmail IMAP.
iCloud Push:
iCloud має нативну підтримку push, схожу на Forward Email, але лише для адрес @icloud.com.
Outlook.com не підтримує XAPPLEPUSHSERVICE, тому додаток iOS Mail мусить опитувати пошту кожні 15 хвилин.
Fastmail:
Fastmail не підтримує XAPPLEPUSHSERVICE. Користувачі повинні використовувати додаток Fastmail для push-сповіщень або погоджуватися на затримки опитування в 15 хвилин.
Тестування та перевірка
Тести можливостей протоколу
Note
Цей розділ містить результати наших останніх тестів можливостей протоколів, проведених 22 січня 2026 року.
Цей розділ містить фактичні відповіді CAPABILITY/CAPA/EHLO від усіх протестованих провайдерів. Всі тести були проведені 22 січня 2026 року.
Ці тести допомагають перевірити заявлену та фактичну підтримку різних поштових протоколів і розширень у провідних провайдерів.
Методологія тестування
Тестове середовище:
- Дата: 22 січня 2026 року о 02:37 UTC
- Локація: інстанс AWS EC2
- IPv4: 54.167.216.197
- IPv6: 2600:4040:46da:9a00:b19e:3ad4:426c:2f48
- Інструменти: OpenSSL s_client, bash-скрипти
Протестовані провайдери:
- Forward Email
- Gmail
- Outlook.com
- iCloud
- Fastmail
- Yahoo/AOL (Verizon)
Тестові скрипти
Для повної прозорості нижче наведені точні скрипти, які використовувалися для цих тестів.
Скрипт тестування можливостей IMAP
#!/bin/bash
# IMAP Capability Test Script
# Tests IMAP CAPABILITY for various email providers
echo "========================================="
echo "IMAP CAPABILITY TEST"
echo "Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (imap.gmail.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.gmail.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Outlook.com
echo "--- Outlook.com (outlook.office365.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect outlook.office365.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# iCloud
echo "--- iCloud (imap.mail.me.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.mail.me.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Fastmail
echo "--- Fastmail (imap.fastmail.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.fastmail.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Yahoo
echo "--- Yahoo (imap.mail.yahoo.com:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.mail.yahoo.com:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
# Forward Email
echo "--- Forward Email (imap.forwardemail.net:993) ---"
echo -e "a001 CAPABILITY\na002 LOGOUT" | timeout 10 openssl s_client -connect imap.forwardemail.net:993 -crlf -quiet 2>&1 | grep -A 20 "CAPABILITY"
echo ""
echo "========================================="
echo "Test completed"
echo "========================================="
Скрипт тестування можливостей POP3
#!/bin/bash
# POP3 Capability Test Script
# Tests POP3 CAPA for various email providers
echo "========================================="
echo "POP3 CAPABILITY TEST"
echo "Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (pop.gmail.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.gmail.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Outlook.com
echo "--- Outlook.com (outlook.office365.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect outlook.office365.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# iCloud (Примітка: iCloud не підтримує POP3)
echo "--- iCloud (No POP3 support) ---"
echo "iCloud не підтримує POP3"
echo ""
# Fastmail
echo "--- Fastmail (pop.fastmail.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.fastmail.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Yahoo
echo "--- Yahoo (pop.mail.yahoo.com:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop.mail.yahoo.com:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
# Forward Email
echo "--- Forward Email (pop3.forwardemail.net:995) ---"
echo -e "CAPA\nQUIT" | timeout 10 openssl s_client -connect pop3.forwardemail.net:995 -crlf -quiet 2>&1 | grep -A 20 "CAPA"
echo ""
echo "========================================="
echo "Test completed"
echo "========================================="
Скрипт тестування можливостей SMTP
#!/bin/bash
# SMTP Capability Test Script
# Tests SMTP EHLO for various email providers
echo "========================================="
echo "ТЕСТ МОЖЛИВОСТЕЙ SMTP"
echo "Дата: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"
echo "========================================="
echo ""
# Gmail
echo "--- Gmail (smtp.gmail.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.gmail.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Outlook.com
echo "--- Outlook.com (smtp.office365.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.office365.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# iCloud
echo "--- iCloud (smtp.mail.me.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.mail.me.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Fastmail
echo "--- Fastmail (smtp.fastmail.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.fastmail.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Yahoo
echo "--- Yahoo (smtp.mail.yahoo.com:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.mail.yahoo.com:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
# Forward Email
echo "--- Forward Email (smtp.forwardemail.net:587) ---"
echo -e "EHLO test.com\nQUIT" | timeout 10 openssl s_client -connect smtp.forwardemail.net:587 -starttls smtp -crlf -quiet 2>&1 | grep -A 30 "250-"
echo ""
echo "========================================="
echo "Тест завершено"
echo "========================================="
Підсумок результатів тестування
IMAP (МОЖЛИВОСТІ)
Forward Email
* CAPABILITY IMAP4rev1 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN CHILDREN ENABLE ID IDLE NAMESPACE QUOTA SASL-IR UNSELECT XLIST XAPPLEPUSHSERVICE
Gmail
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE
iCloud
* OK [CAPABILITY XAPPLEPUSHSERVICE IMAP4 IMAP4rev1 SASL-IR AUTH=ATOKEN AUTH=PLAIN AUTH=ATOKEN2 AUTH=XOAUTH2]
* CAPABILITY IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
Fastmail
* CAPABILITY IMAP4rev1 ACL ANNOTATE-EXPERIMENT-1 CATENATE CONDSTORE ENABLE ESEARCH ESORT I18NLEVEL=1 ID IDLE LIST-EXTENDED LIST-STATUS LITERAL+ LOGINDISABLED MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SORT SPECIAL-USE THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN X-RENAME XLIST
Yahoo/AOL (Verizon)
* CAPABILITY IMAP4rev1 IDLE NAMESPACE QUOTA ID XLIST CHILDREN UIDPLUS MOVE CONDSTORE ESEARCH ENABLE LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE UNSELECT XAPPLEPUSHSERVICE
POP3 (CAPA)
Forward Email
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION ForwardEmail
.
Gmail
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION Gpop
.
+OK
CAPA
TOP
USER
UIDL
SASL PLAIN XOAUTH2
.
Fastmail
+OK
CAPA
TOP
USER
UIDL
EXPIRE 30
IMPLEMENTATION Cyrus
.
SMTP (EHLO)
Forward Email
250-smtp.forwardemail.net
250-PIPELINING
250-SIZE 52428800
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
Gmail
250-smtp.gmail.com at your service
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
250-SN4PR13CA0005.outlook.office365.com Hello [x.x.x.x]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8
Fastmail
250-smtp.fastmail.com
250-PIPELINING
250-SIZE 78643200
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
Yahoo/AOL (Verizon)
250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41943040
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-STARTTLS
Детальні результати тестування
Результати тестування IMAP
Gmail:
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER
Outlook.com:
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
iCloud:
* CAPABILITY XAPPLEPUSHSERVICE IMAP4 IMAP4rev1 SASL-IR AUTH=ATOKEN AUTH=PLAIN AUTH=ATOKEN2 AUTH=XOAUTH2
Fastmail: Час очікування з'єднання вичерпано. Дивіться примітки нижче.
Yahoo:
* CAPABILITY IMAP4rev1 SASL-IR AUTH=PLAIN AUTH=XOAUTH2 AUTH=OAUTHBEARER ID MOVE NAMESPACE XYMHIGHESTMODSEQ UIDPLUS LITERAL+ CHILDREN UNSELECT X-MSG-EXT OBJECTID IDLE ENABLE UIDONLY X-ALL-MAIL X-UIDONLY LIST-EXTENDED LIST-STATUS SPECIAL-USE PARTIAL APPENDLIMIT=41697280
Forward Email:
* CAPABILITY XAPPLEPUSHSERVICE IMAP4rev1 APPENDLIMIT=52428800 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN CHILDREN CONDSTORE ENABLE ID IDLE MOVE NAMESPACE QUOTA SASL-IR SPECIAL-USE UIDPLUS UNSELECT UTF8=ACCEPT XLIST
Результати тестування POP3
Gmail: З'єднання не повернуло відповідь CAPA без автентифікації.
Outlook.com: З'єднання не повернуло відповідь CAPA без автентифікації.
iCloud: Не підтримується.
Fastmail: Час очікування з'єднання вичерпано. Дивіться примітки нижче.
Yahoo:
+OK CAPA list follows... SASL PLAIN XOAUTH2
Forward Email: З'єднання не повернуло відповідь CAPA без автентифікації.
Результати тестування SMTP
Gmail:
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
Outlook.com:
250-DSN
iCloud:
250-DSN
Fastmail:
250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER
Yahoo:
250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER
Forward Email:
250-DSN, 250-REQUIRETLS
Примітки до результатів тестування
Note
Важливі спостереження та обмеження з результатів тестування.
-
Таймаути Fastmail: З'єднання з Fastmail завершувалися таймаутом під час тестування, ймовірно через обмеження швидкості або обмеження брандмауера з боку IP тестового сервера. Відомо, що Fastmail має надійну підтримку IMAP/POP3/SMTP згідно з їхньою документацією.
-
Відповіді CAPA POP3: Декілька провайдерів (Gmail, Outlook.com, Forward Email) не повертали відповіді CAPA без автентифікації. Це поширена практика безпеки для POP3 серверів.
-
Підтримка DSN: Лише Outlook.com, iCloud та Forward Email явно рекламують підтримку DSN у своїх SMTP EHLO відповідях. Це не означає, що інші провайдери не підтримують DSN, але вони не рекламують це.
-
REQUIRETLS: Лише Forward Email явно рекламує підтримку REQUIRETLS з можливістю користувацького включення через чекбокс. Інші провайдери можуть підтримувати це внутрішньо, але не рекламують у EHLO.
-
Тестове середовище: Тести проводилися з інстансу AWS EC2 (IP: 54.167.216.197 IPv4, 2600:4040:46da:9a00:b19e:3ad4:426c:2f48 IPv6) 22 січня 2026 року о 02:37 UTC.
Резюме
Forward Email забезпечує всебічну підтримку протоколів RFC для всіх основних стандартів електронної пошти:
- IMAP4rev1: 16 підтримуваних RFC з задокументованими навмисними відмінностями
- POP3: 4 підтримуваних RFC з відповідністю RFC для постійного видалення
- SMTP: 11 підтримуваних розширень, включно з SMTPUTF8, DSN та PIPELINING
- Аутентифікація: Повна підтримка DKIM, SPF, DMARC, ARC
- Безпека транспорту: Повна підтримка MTA-STS та REQUIRETLS, часткова підтримка DANE
- Шифрування: Підтримка OpenPGP v6 та S/MIME
- Календарі: Повна підтримка CalDAV, CardDAV та VTODO
- Доступ через API: Повний REST API з 39 кінцевими точками для прямого доступу до бази даних
- Push iOS: Рідні push-повідомлення для пошти, контактів і календарів через
XAPPLEPUSHSERVICE
Ключові відмінності
Tip
Forward Email вирізняється унікальними функціями, яких немає у інших провайдерів.
Що робить Forward Email унікальним:
- Квантово-безпечне шифрування – єдиний провайдер з зашифрованими поштовими скриньками SQLite на ChaCha20-Poly1305
- Архітектура з нульовим знанням – ваш пароль шифрує вашу поштову скриньку; ми не можемо її розшифрувати
- Безкоштовні власні домени – відсутність щомісячних платежів за пошту на власному домені
- Підтримка REQUIRETLS – користувацький чекбокс для примусового застосування TLS на всьому шляху доставки
- Всебічний API – 39 REST API кінцевих точок для повного програмного контролю
- Push-повідомлення iOS – рідна підтримка XAPPLEPUSHSERVICE для миттєвої доставки
- Відкритий код – повний вихідний код доступний на GitHub
- Орієнтація на конфіденційність – без збору даних, без реклами, без відстеження
- Пісочниця шифрування: Єдина поштова служба з індивідуально зашифрованими SQLite поштовими скриньками
- Відповідність RFC: Віддає пріоритет дотриманню стандартів над зручністю (наприклад, POP3 DELE)
- Повний API: Прямий програмний доступ до всіх даних електронної пошти
- Відкритий код: Повністю прозора реалізація
Підсумок підтримки протоколів:
| Категорія | Рівень підтримки | Деталі |
|---|---|---|
| Основні протоколи | ✅ Відмінно | Повна підтримка IMAP4rev1, POP3, SMTP |
| Сучасні протоколи | ⚠️ Частково | Часткова підтримка IMAP4rev2, JMAP не підтримується |
| Безпека | ✅ Відмінно | DKIM, SPF, DMARC, ARC, MTA-STS, REQUIRETLS |
| Шифрування | ✅ Відмінно | OpenPGP, S/MIME, шифрування SQLite |
| CalDAV/CardDAV | ✅ Відмінно | Повна синхронізація календарів і контактів |
| Фільтрація | ✅ Відмінно | Sieve (24 розширення) та ManageSieve |
| API | ✅ Відмінно | 39 REST API кінцевих точок |
| Push | ✅ Відмінно | Вбудовані push-повідомлення iOS |