main.cf

# ================== Основні параметри ==================

# Ім'я хоста поштового сервера (має відповідати PTR і DNS A-запису)
myhostname = mail.example.com

# Доменна частина (використовується для локальних адрес)
mydomain = example.com

# Частина, що підставляється у відправників (user@example.com)
myorigin = $mydomain

# Де шукати аліаси (псевдоніми поштових адрес)
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# Які домени вважаються "своїми" (для яких приймаємо пошту)
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# Для локальних користувачів (Linux accounts + aliases)
local_recipient_maps = unix:passwd.byname $alias_maps

# Обмеження мереж (хто вважається довіреним)
mynetworks = 127.0.0.0/8

# Розмір поштової скриньки необмежений
mailbox_size_limit = 0

# Доставляємо пошту у форматі Maildir
home_mailbox = Maildir/

# Інтерфейси та протоколи
inet_interfaces = all
inet_protocols = ipv4


# ================== Базова безпека ==================

# Забороняємо відправку на неіснуючих локальних юзерів
unknown_local_recipient_reject_code = 550

# Забороняємо команду VRFY (менше інформації для зловмисників)
disable_vrfy_command = yes

# Банер SMTP
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

# Ліміти для прийому/відправки
recipient_delimiter = +

# Політика relay (кому дозволено пересилати)
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination


# ================== TLS / Шифрування ==================

# Сертифікати Let's Encrypt
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/mail.example.com/privkey.pem

# Використання TLS
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_security_level = may
smtp_tls_security_level  = may

# Додаткові параметри TLS
smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database  = btree:${data_directory}/smtp_scache


# ================== SASL (автентифікація) ==================

# Використовуємо Dovecot як бекенд
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
# smtpd_sasl_local_domain =   # (звичайно лишається порожнім)


# ================== OpenDKIM інтеграція ==================

# Якщо щось не так із milter – приймаємо (щоб не ламати пошту)
milter_default_action = accept
milter_protocol = 2

# Підключення OpenDKIM (слухає на порту 12301 локально)
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301


# ================== Інше ==================

# Рівень сумісності з новими версіями Postfix
compatibility_level = 3.6

# Не показувати повідомлення biff (не актуально для Maildir)
biff = no

# Крапка після домену у MUA не додається
append_dot_mydomain = no

# Директорія readme (не використовується)
readme_directory = no

Тут налаштовано не відсилати bounce взагалі для листів, які не можуть бути доставлені неіснуючому отримувачу (local_recipient_maps), а відхилити одразу на етапі SMTP (550 5.1.1 User unknown) Див. : Пошта на неіснуючі адреси

#

Last updated