postfix не отправляет почту

Zak2009
На сайте с 27.05.2010
Offline
93
2814

Здравствуйте.

Есть связка postfix + dovecot + postfixadmin. OC Debian 8.

Почта с внешки принимается нормально, а отправляться не хочет. Я нуб, но хочу и пытаюсь всему научится, прошу не пинать. В конфигах хаос.

/etc/postfix/main.cf

# Common config

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
myhostname = mydomain.ru
mydomain = mydomain.ru
inet_interfaces = all
inet_protocols = ipv4
mydestination = pcre:/etc/postfix/mydestinations

mynetworks = 127.0.0.0/8, 192.168.0.103
unknown_local_recipient_reject_code = 550

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
#relayhost =
mailbox_size_limit = 0
virtual_mailbox_limit = 0
recipient_delimiter = +

# Проверяем заголовки
header_checks = regexp:/etc/postfix/config/header_checks
mime_header_checks = regexp:/etc/postfix/config/mime_header_checks

# TLS parameters
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

maximal_queue_lifetime = 1d
bounce_queue_lifetime = 1d

queue_run_delay=5m
minimal_backoff_time=5m
maximal_backoff_time=10m
message_size_limit = 26214400

#Дополнительные файлы конфигурации
sql_dir = /etc/postfix/mysql

# Таблица просмотра виртуальных доменов
virtual_mailbox_domains = proxy:mysql:$sql_dir/mysql_virtual_domains_maps.cnf

# Таблицы просмотра почтовых псевдонимов для виртуальных почтовых доменов/ящиков
virtual_alias_maps = proxy:mysql:$sql_dir/mysql_virtual_alias_domain_maps.cnf, proxy:mysql:$sql_dir/mysql_virtual_alias_domain_catchall_maps.cnf

# Таблицы просмотра каталогов для хранения почты
virtual_mailbox_maps = proxy:mysql:$sql_dir/mysql_virtual_mailbox_maps.cnf, proxy:mysql:$sql_dir/mysql_virtual_alias_domain_mailbox_maps.cnf

# Нужен чтобы по MAIL FROM узнать логин и затем сверить с логином, по которому прошла аутентификация.
smtpd_sender_login_maps = proxy:mysql:$sql_dir/mysql_virtual_emails_maps.cnf

# Путь до каталога хранилища почты
virtual_mailbox_base = /web/mail

home_mailbox = /web/mail/Maildir/
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"

virtual_uid_maps = static:8
virtual_gid_maps = static:8

virtual_minimum_uid = 8

mail_owner = postfix
setgid_group = postdrop

mailbox_transport = dovecot
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

# Поддержку sasl авторизации
smtpd_sasl_auth_enable = yes

#z Поддержки старых версий почтовых клиентов, например Microsoft Outlook Express 4 и Microsoft Exchange 5, использующих другую форму команды AUTH
broken_sasl_auth_clients = yes

smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth

# Требуем, чтобы удалённый SMTP клиент представлял себя в начале SMTP сессии с помощью команды HELO или EHLO.
smtpd_helo_required = yes

# Всегда отправлять EHLO вначале SMTP сессии
smtp_always_send_ehlo = yes

disable_vrfy_command = yes

# Сообщать ли клиентам о возможности использования TLS (шифрования соединения)
smtpd_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom

smtpd_tls_key_file = /etc/ssl/private/mail-key.pem
smtpd_tls_cert_file = /etc/ssl/certs/mail-cert.pem
#smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem

# Список таблиц, которым разрешено работать через proxymap (кеширует запросы и снижает нагрузку на БД)
proxy_read_maps = $local_recipient_maps $mydestination $smtpd_sender_login_maps $virtual_alias_maps $virtual_mailbox_domains $virtual_mailbox_maps $relay_recipient_maps $mynetworks

# Создаём классы:
smtpd_restriction_classes = verify_sender, rbl_cbl_abuseat_org, rbl_sbl_spamhaus_org, rbl_dul_ru, rbl_spamcop, white_client_ip, black_client_ip, block_dsl, helo_access, white_client, mx_access, helo_access_db

# Описание классов:
verify_sender = reject_unverified_sender, permit
rbl_cbl_abuseat_org = reject_rbl_client cbl.abuseat.org
rbl_dul_ru = reject_rbl_client dul.ru
rbl_sbl_spamhaus_org = reject_rbl_client sbl.spamhaus.org
rbl_spamcop = reject_rbl_client bl.spamcop.net

white_client_ip = check_client_access hash:/etc/postfix/config/white_client_ip
black_client_ip = check_client_access hash:/etc/postfix/config/black_client_ip
block_dsl = regexp:/etc/postfix/config/block_dsl
helo_access = check_helo_access pcre:/etc/postfix/config/helo_checks.prce
helo_access_db = check_helo_access hash:/etc/postfix/config/helo_checks
white_client = check_sender_access pcre:/etc/postfix/config/white_client
mx_access = check_sender_mx_access cidr:/etc/postfix/config/mx_access

### Restrictions
# Проверки клиентского компьютера (или другого почтового сервера),
# который соединяется с сервером postfix для отправки письма
smtpd_client_restrictions = black_client_ip,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
white_client_ip,
reject_unauth_pipelining,
helo_access,
block_dsl,
reject_unknown_address,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
rbl_dul_ru,
rbl_sbl_spamhaus_org,
rbl_spamcop,
rbl_cbl_abuseat_org,
permit

# временно убрал из-за кучи кривых серверов
smtpd_helo_restrictions = permit_mynetworks,
permit_sasl_authenticated,
helo_access,
helo_access_db,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
permit

# Проверки исходящей или пересылаемой через нас почты
#smtpd_sender_restrictions = reject_unknown_sender_domainpermit

# Правила приема почты нашим сервером: Из-за них почта не доходит
#smtpd_recipient_restrictions = hash:/etc/postfix/config/access,reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_unauth_pipelining,permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_multi_recipient_bounce,permit

smtpd_data_restrictions = reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit

smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination

# Пропустить серверы, которые приветствуют нас кодом состояния 5xx
smtp_skip_5xx_greeting = yes

# Отклонение писем с несуществующим адресом отправителя
smtpd_reject_unlisted_sender = yes
# Отклонение писем с несуществующим адресом получателя
smtpd_reject_unlisted_recipient = yes

/var/log/mail.log

Sep 29 20:06:15 gprogs postfix/pipe[95830]: E0AC4613EF: to=<zak2009@mail.ru>, relay=dovecot, delay=0.02, delays=0.01/0/0/0.01, dsn=5.1.1, status=bounced (user unknown)

Sep 29 20:06:15 gprogs postfix/bounce[95843]: E0AC4613EF: sender non-delivery notification: E4783613F0

Где же я туплю?

Zak2009
На сайте с 27.05.2010
Offline
93
#1

/etc/postfix/master.cf


smtp inet n - - - 1 postscreen
smtpd pass - - - - - smtpd
dnsblog unix - - - - 0 dnsblog
tlsproxy unix - - - - 0 tlsproxy
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=mail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}

# Submission, port 587, force TLS connection.
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026

# Use dovecot's `deliver` program as LDA.
dovecot unix - n n - - pipe
flags=DRh user=mail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${domain} -m ${extension}

# Amavisd integration.
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
-o smtp_tls_security_level=none
-o smtpd_tls_security_level=none
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_end_of_data_restrictions=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings

/etc/dovecot/dovecot.conf

# Поддерживаемые протоколы

protocols = pop3 imap
#pop3s imaps

# Logging
log_timestamp = "%Y-%m-%d %H:%M:%S "

# Вместо syslog будем использовать /var/log/dovecot.log
log_path = /var/log/dovecot.log

# Информационные сообщения будем сохранять в этот же файл
info_log_path = /var/log/dovecot.log

# Отключаем plaintext аутентификацию
disable_plaintext_auth = no

# Включаем ssl
ssl = no
ssl_cert = </etc/ssl/certs/mail-cert.pem
ssl_key = </etc/ssl/certs/mail-key.pem
ssl_parameters_regenerate = 168 hours
verbose_ssl = no

# Сообщение приветствия
login_greeting = Welcome to IMAP/POP3 server

# Месторасположение пользовательских почтовых ящиков.
# Существует несколько специальных переменных, которые вы можете использовать:
#
# %u - имя пользователя
# %n - пользовательская часть в user@domain, то же самое что и %u
# если не задана доменная часть
# %d - доменная часть в user@domain, пустая, если не указан домен
# %h - домашний каталог
#
# Смотрите в doc/variables.txt полный список переменных переменных.

# Место расположения почтовых каталогов
#mail_location = maildir:/web/mail/%d/%n:LAYOUT=fs
mail_location = maildir:/web/mail/%d/%n/Maildir:INDEX=/web/mail/%d/%n/Maildir/indexes

# Включаем отладку, очень полезно при первоначальной настройке и поиске
# неисправностей. После настройки лучше отключать.
mail_debug = yes

# Допустимый интервал UID для пользователей, по умолчанию 500 и выше.
# Это сделано для того, чтобы быть уверенным в том, что пользователи
# не смогут войти как демоны или другие системные пользователи.
# Примечание. Запрет входа root встроен в бинарник dovecot и не может
# быть изменён, даже если установить first_valid_uid в 0.
first_valid_uid = 8
last_valid_uid = 50000

# Допустимый интервал GID для пользователей
first_valid_gid = 8
last_valid_gid = 8

# Пользователь и группа от которых будет работать dovecot
mail_gid = mail
mail_uid = mail

# Допустимые символы в имени пользователя
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

#############################################################################
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# ! Следующих три параметра следует использовать только во время настройки !
# ! и отладки dovecot. После этого их лучше отключить. !
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# Более высокий уровень информативности. Полезно использовать при поиске
# ошибок, связанных с аутентификацией.
auth_verbose = yes

# Более высокий уровень информативности, используется в целях отладки.
# Например, показывает SQL запросы.
auth_debug = yes

# В случае несовпадения пароля, отображает пароли и используемую схему
# хранения пароля. Требует, чтобы был установлен auth_debug=yes.
auth_debug_passwords = yes

# Разделённый пробелами список, используемых механизмов аутентификации:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
auth_mechanisms = plain login

# База данных паролей используется для проверки паролей пользователей
# Пользователи могут быть временно отключены с помощью добавления опции deny=yes
# в passdb. Если пользователь найден в базе данных, аутентификация потерпит неудачу.
# База данных с отключёнными пользователями всегда должна быть указана перед остальными,
# так как её проверка идёт первой.
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}

userdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf
}

#userdb static {
#args = uid=8 gid=8 home=/web/mail/%d/%n
#allow_all_users=yes
#}



# Сервисы
service auth {
unix_listener /var/spool/postfix/private/dovecot-auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
group = mail
mode = 0660
user = mail
}
unix_listener auth-userdb {
mode = 0600
user = mail
group = mail
}
user = dovecot
}

service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
address = *
port = 993
ssl = yes
}
}

service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
address = *
port = 995
ssl = yes
}
}

service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0660
user = postfix
}
}

service managesieve-login {
inet_listener sieve {
port = 4190
}
}

# Протоколы
protocol lda {
hostname = gprogs.ru
mail_plugins = $mail_plugins sieve
postmaster_address = postmaster@gprogs.ru
}

protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep
mail_plugins = autocreate
}

protocol pop3 {
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %08Xu%08Xv
}

protocol sieve {
managesieve_max_line_length = 65536
mail_max_userip_connections = 10
}
Zak2009
На сайте с 27.05.2010
Offline
93
#2

😡

тут

myhostname = mydomain.ru

mydomain = mydomain.ru

стоял кривой домен.

фейспалм с громким шлепком.

Zak2009
На сайте с 27.05.2010
Offline
93
#3

Компания SimplyWAY помогла мне с данной проблемой, с условием, что я оставлю здесь свой отзыв - выполняю свой долг.

Со мной связался менеджер компании SimplyWAY , сказав, что Служба поддержки решит мою проблему, даже если я не являюсь их клиентом, с условием, что я оставлю здесь отзыв о проделанной работе.

Ребята очень хорошо разбираются в настройках сервера, а главное очень толерантны к клиентам, объяснили все доступно, указав на проблемы. Спасибо админу Виктору, менеджеру Олегу да и всей команде SimplyWAY за бесплатную помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий