У меня два независимых домена ad.vz и ad2.vz, между ними шлюз. Всего существует 3 постфиксных сервера:
Mailsh может подключиться сразу только к одной сетевой области. Есть рабочее реле, которое включает / выключает каждые 30 секунд. Я запускаю стресс-тест в mailad, который отправляет 20 писем по 500 КБ каждые 30 секунд. Иногда начинает накапливаться очередь. Я вижу в почтовом журнале следующее сообщение:
Sep 4 08:51:01 mailsh postfix/error[9602]: CFA5E131A7: to=<test@mailinet2.ad.vz>, relay=none, delay=33, delays=32/0/0/0, dsn=4.4.3, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=mailinet.ad.vz type=MX: Host not found, try again)"
Каждый раз, когда включается адаптер, я отправляю команду postqueue -f
Почему может скапливаться очередь?
mailad postconf:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = vzavod.ru
myhostname = mailad.vzavod.ru
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
transport settings:
vzavod.ru local
* smtp:mailsh.ad.vz
mailsh postconf:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = vzavod.ru
myhostname = mailsh.vzavod.ru
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
настройки транспорта:
* smtp:mailinet.ad.vz
vzavod.ru smtp:mailad.ad.vz
Похоже, ваша ситуация похожа на сценарий из этой статьи: постфикс в коммутируемой машине.
Взято из этой статьи, вот некоторые соображения.
Отключить самопроизвольную доставку почты SMTP (если используется только IP-адрес коммутируемого доступа по запросу).
С параметром ниже postfix не будет пытаться отправить электронное письмо, если вы не запустите postqueue -f
вручную. Поместите этот параметр в main.cf
. Больше информации в Вот.
defer_transports = smtp # (Only for on-demand dialup IP hosts)
Отключите поиск DNS клиента SMTP (только для удаленного доступа в локальной сети).
Отключите поиск DNS в клиентах Postfix SMTP и LMTP. Когда отключено, поиск хостов выполняется с помощью процедуры системной библиотеки getaddrinfo (), которая обычно также просматривает / etc / hosts. Итак, разместите запись mailad.ad.vz
на /etc/hosts
. Например
# echo "192.168.1.99 mailad.ad.vz" >> /etc/hosts
И добавьте этот параметр в main.cf
disable_dns_lookups = yes #(Only for on-demand dialup IP hosts)