Exim v Postfix
О, цікава тема, давай розберемо спокійно й по пунктах. Exim і Postfix — це обидва MTA (Mail Transfer Agent), які виконують одну задачу: приймати, маршрутизувати і доставляти пошту. Але підхід у них різний.
1. Філософія та підхід
Exim: максимально гнучкий і налаштовуваний. У нього одна велика конфігурація, де можна вписати практично будь-яку логіку доставки, маршрутизації та обробки пошти. Але це і сила, і слабкість: легко зробити щось нестандартне, але новачок може швидко «потонути» в складності.
Postfix: більш «модульний» і простий для розуміння. Конфігураційні файли розділені, синтаксис простіший, структура чітка. Налаштування типових сценаріїв швидше і простіше, ніж у Exim.
2. Продуктивність
Exim: нормально працює навіть на невеликих серверах, але в масштабах дуже великих навантажень поступається Postfix.
Postfix: оптимізований під високі навантаження, швидкість обробки черг у нього вища. Великі провайдери зазвичай обирають саме Postfix.
3. Безпека
Exim: через свою гнучкість історично мав більше дірок (пам’ятаєш новини про великі уразливості?). Патчі виходять швидко, але адмін має бути уважним.
Postfix: від початку проектувався з фокусом на безпеці. Код більш «закритий» від експлуатації. Репутація у нього тут краща.
4. Гнучкість та налаштування
Exim: тут він король. Можна написати будь-які ACL, зробити складні маршрути, кастомні перевірки, інтеграції — прямо в конфігах. Ідеально для «нестандартних» систем.
Postfix: простіше, але для складних сценаріїв треба використовувати сторонні сервіси чи додаткові скрипти.
5. Популярність
Exim: за замовчуванням йде в Debian/Ubuntu (через це й популярний у багатьох хостерів).
Postfix: дефолт у RedHat/CentOS, і загалом на світовому рівні більш поширений серед великих поштових провайдерів.
6. Крива навчання
Exim: крута, треба вчитись. Але якщо знаєш — можеш «чарувати» з поштою.
Postfix: простіше стартувати, легше знайти приклади конфігів, легше пояснювати іншим.
Підсумок (якщо коротко)
Exim — якщо хочеш максимальної гнучкості, кастомних рішень і готовий до складних конфігів. Добре підходить для невеликих і середніх серверів, особливо якщо вже звик до Debian/Ubuntu.
Postfix — якщо потрібна продуктивність, безпека і стабільність. Краще для великих систем і коли важливий «спокійний сон» адміністратора.
Структура директорій поштових скриньок
Ага, тепер ти питаєш вже не про MTA загалом, а саме про те, як зберігаються листи у файловій системі. Тут важливе: Exim і Postfix самі по собі не зберігають пошту у скриньках користувачів — вони лише доставляють. Структуру поштових директорій визначає LDA (Local Delivery Agent) або поштовий сервер (Dovecot, Courier, procmail і т. д.).
Є два основних формати поштових скриньок:
1. mbox (старий, але ще зустрічається)
Вся пошта користувача зберігається в одному файлі.
Наприклад:
/var/mail/username або /var/spool/mail/username
Кожен новий лист просто додається в кінець файлу.
Мінуси: якщо файл дуже великий → проблеми з продуктивністю, блокуванням.
2. Maildir (сучасний і популярний)
Кожен лист — це окремий файл.
Для кожної поштової скриньки є директорія з трьома папками:
Maildir/ cur/ ← тут зберігаються прочитані листи new/ ← нові (ще не прочитані) листи tmp/ ← тимчасові файли під час доставки
Наприклад:
/home/username/Maildir/cur/... /home/username/Maildir/new/...
Плюси: швидше працює з великим обсягом пошти, легше робити бекапи та індексацію, немає блокування одного файлу.
3. Варіанти і нюанси
Exim може доставляти і в
mbox
, і вMaildir
(залежить від конфіга).Postfix зазвичай у парі з Dovecot працює з Maildir, але теж може в mbox.
У великих інсталяціях іноді замість файлової системи використовують бази даних (наприклад, Cyrus IMAP).
Приклад для користувача ivan
(з Dovecot + Postfix, формат Maildir):
ivan
(з Dovecot + Postfix, формат Maildir):/home/ivan/Maildir/
cur/
new/
tmp/
А в системі ще буде spool (черга вхідних листів), куди MTA складає пошту перед доставкою:
/var/spool/exim/ ← для Exim
/var/spool/postfix/ ← для Postfix
Але це тимчасово — не «поштова скринька» користувача, а робоча область самого MTA.
Dovecot
Exim чи Postfix доставляють листи, але саме Dovecot робить так, щоб користувач міг їх побачити у поштовому клієнті (Thunderbird, Outlook, мобільний Gmail тощо).
Що таке Dovecot
Це IMAP/POP3 сервер і одночасно LDA (Local Delivery Agent).
Його основна роль:
Зберігати пошту користувачів у форматі mbox або Maildir.
Давати доступ до пошти по протоколах IMAP і POP3.
Аутентифікація користувачів (через системних юзерів, SQL, LDAP тощо).
Фільтри та правила доставки (через Sieve).
Основні можливості
Формати пошти: підтримує і
mbox
, іMaildir
(рекомендовано Maildir).Протоколи:
POP3 (старий, листи завантажуються локально).
IMAP (сучасний, листи лишаються на сервері, зручно для багатьох пристроїв).
Аутентифікація:
системні акаунти (
/etc/passwd
),віртуальні користувачі (MySQL, PostgreSQL, LDAP),
навіть через
passwd-file
.
TLS/SSL: шифрований доступ до пошти.
Quota: можна задати обмеження на розмір поштової скриньки.
Full-text search: вбудовані індекси для швидкого пошуку по листах.
Фільтри (Sieve): автоматичне сортування листів у папки, авто-відповідачі.
Де зберігає пошту
Якщо формат Maildir (найчастіше):
/home/username/Maildir/{cur,new,tmp}
Якщо формат mbox:
/var/mail/username
Конкретний шлях задається в
dovecot.conf
черезmail_location
. Наприклад:mail_location = maildir:~/Maildir
Як виглядає у зв’язці
Postfix/Exim приймає пошту.
Викликає Dovecot LDA (deliver) або LMTP (протокол доставки).
Dovecot кладе лист у
Maildir
користувача.Користувач підключається до Dovecot через IMAP/POP3 і бачить пошту.
Плюси Dovecot
Дуже швидкий і легкий (пише на C з акцентом на безпеку).
Простий у налаштуванні порівняно з Courier чи Cyrus.
Підтримує майже всі сценарії — від маленького VPS до великих поштових сервісів.
Має відмінну документацію і велику спільноту.
SMTP
Добре, давай тепер розкладемо відправку пошти крок за кроком. Ми вже говорили: Exim/Postfix приймають і доставляють, а Dovecot тільки дає доступ до скриньки (IMAP/POP3). Але відправлення теж проходить через свої стадії.
1. Як це виглядає для користувача
Ти відкриваєш Thunderbird/Outlook/Gmail на телефоні.
Натискаєш “Відправити”.
Клієнт (MUA — Mail User Agent) підключається до твого сервера через SMTP (порт 587 або 465).
2. Аутентифікація на сервері
Щоб твій сервер не став «відкритим релеєм» (open relay), користувач має пройти логін/пароль.
Тут якраз у гру входить Dovecot SASL: він перевіряє пароль користувача (через системні акаунти, SQL чи LDAP).
Postfix/Exim делегує перевірку Dovecot'у.
3. Обробка пошти сервером (MTA)
Postfix або Exim бере повідомлення від користувача.
Робить перевірки (правила, чи можна відправити, чи правильний відправник).
Кладе лист у свою чергу (
/var/spool/postfix/
або/var/spool/exim/
).Потім намагається доставити його на сервер-одержувач через SMTP.
4. Як знаходиться адресат
MTA робить DNS-запит до запису MX домену (наприклад, для
gmail.com
).Якщо MX немає → пробує напряму через A-запис.
Встановлює з’єднання з віддаленим сервером і передає лист.
5. Захист і фільтри
При відправленні часто використовується:
SPF/DKIM/DMARC — підтверджують, що ти легальний відправник.
TLS (STARTTLS) — шифрує канал до іншого сервера.
Сервер може робити черги й повторні спроби доставки, якщо одержувач тимчасово недоступний.
6. Сценарій у зв’язці Postfix + Dovecot
Користувач відправляє лист на
smtp.domain.com
(порт 587).Postfix приймає його → викликає Dovecot SASL для перевірки пароля.
Якщо все ок → Postfix кладе лист у чергу.
Postfix робить DNS-запит → знаходить MX для домену одержувача.
Відправляє лист іншому серверу (наприклад,
gmail-smtp-in.l.google.com
).Якщо доставка вдалася → лист зникає з черги.
7. Для адміністрування
Основний лог у Postfix:
/var/log/mail.log
У Exim:
/var/log/exim/mainlog
Тут видно всі спроби, черги, помилки відправлення.
Власне, все досить схоже на кур’єрську пошту:
Dovecot → це твоя поштова скринька, щоб читати листи.
Postfix/Exim → поштар, який бігає по місту і відвозить/приймає конверти.
Last updated