iRedMail: псевдоним домена не работает с некоторыми внешними почтами (диакритические знаки/punycode)

iRedMail: псевдоним домена не работает с некоторыми внешними почтами (диакритические знаки/punycode)

После успешной настройки сервера iRedMail для моего основного домена я попытался добавить свой дополнительный домен в качестве псевдонима, выполнив следующие действия:https://docs.iredmail.org/sql.add.alias.domain.html

Это пока не помогло, поэтому я дополнительно добавил вторичный домен в /etc/postfix/main.cf:

virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual

Примечание: я не удалил ни одну из существующих записей MySQL в virtual_alias_maps.

И ввел сопоставление в /etc/postfix/virtual и затем выполнил «postmap /etc/postfix/virtual»:

@domain2.tld     @domain1.tld

Это работает внутри сервера.[email protected]можно отправить[email protected]и user2 получит почту в свой почтовый ящик. Внешние письма также все равно приходят, если их отправить на[email protected].

К сожалению, это не работает с внешней почтой на вторичном домене. В моем /var/logs/mail.log я нахожу следующие строки:

postfix/smtpd[5541]: NOQUEUE: reject: RCPT from mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 <[email protected]>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-oi1-x231.google.com>

И:

postfix/smtpd[5644]: warning: problem talking to server 127.0.0.1:12340: Connection timed out

На порту 12340 dovecot слушает:

dovecot    513      root   67u  IPv4  17087      0t0  TCP 127.0.0.1:12340 (LISTEN)

В журнале моей голубятни я неоднократно встречаю следующую строку:

dovecot: quota-status: Error: quota-status: Client sent invalid recipient address: Invalid character in path

После некоторых дополнительных тестов с различными внешними почтовыми хостерами я понял, что 2 из 4 писем доходили при отправке на вторичный домен. GMail и Hotmail — нет, а вот Exchange моей компании и какой-то другой веб-провайдер доходили.

И вот тут я застрял. Я подозреваю одно из двух: либо я просто пропустил необходимую конфигурацию, что кажется весьма вероятным, поскольку я никогда раньше не настраивал почтовый сервер на Debian, либо ошибка dovecot вызвана моим вторичным доменом. Вторичный домен содержит умлаут (ä/ö/ü), который, как я хорошо знаю, может вызывать некоторые проблемы. Поэтому я также владею доменом в его варианте в формате punycode. Поэтому всякий раз, когда я добавлял свой вторичный домен с его умлаутом в конфигурацию, я также добавлял его версию в формате punycode, предполагая, что это решит любые проблемы в этом отношении.

iRedMail/postfix/dovecot/whateverelseisinvolved, похоже, работают нормально с punnycode/umlauts как таковыми, похоже, это зависит только от отправителя, поскольку теряется только половина писем (отправитель не получает ошибку). Есть ли у вас предположения, почему или какие логи я могу проверить, чтобы разобраться в этом глубже? Я просто забыл настроить что-то очевидное?

Любой толчок в правильном направлении будет высоко оценен.

С уважением, Снот

==== Основная информация ====

  • Версия iRedMail: 1.4.0 MARIADB edition
  • Название и версия дистрибутива Linux/BSD: Debian GNU/Linux 10 (buster) - 10.10
  • Используемая БД: MySQL (MariaDB)
  • Веб-сервер: Nginx

==== Редактировать ====

Что касается базовой настройки: после чистой установки Debian 10 я выполнил шаги, описанные в этом руководстве.https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server

Любая конкретная конфигурация, которая отличается от руководства, была упомянута в посте. Я дополнительно выпустил сертификат, который включает основной домен и вторичный домен в punnycode.

Вот различные журналы загрузки:

/var/log/mail.log:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s amavis[573]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix
Aug 14 14:24:39 s amavis[1915]: Net::Server: Group Not Defined.  Defaulting to EGID '121 121'
Aug 14 14:24:39 s amavis[1915]: Net::Server: User Not Defined.  Defaulting to EUID '113'
Aug 14 14:24:39 s amavis[1915]: No ext program for   .F, tried: unfreeze, freeze -d, melt, fcat
Aug 14 14:24:39 s amavis[1915]: No ext program for   .zoo, tried: zoo, unzoo
Aug 14 14:24:39 s amavis[1915]: No decoder for       .F   
Aug 14 14:24:39 s amavis[1915]: No decoder for       .zoo 
Aug 14 14:24:39 s amavis[1915]: Using primary internal av scanner code for clamav-socket
Aug 14 14:24:39 s amavis[1915]: Found secondary av scanner clamav-clamscan at /usr/bin/clamscan

/var/log/dovecot/dovecot.log:

Aug 14 14:24:26 s dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global

grep постфикс /var/log/syslog:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix

Я отключил функции квот и включил SMTPUTF8 в моем postfix main.cf, никаких заметных изменений, за исключением дополнительной строки при загрузке в mail.log:

Aug 14 14:59:46 s amavis[571]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"

К сожалению, поведение осталось прежним. После дальнейшего анализа логов я понял, что, похоже, письма от провайдеров отправляются через punycode (даже если я специально отправлял их на домен с умлаутом/не-ASCII-символом). С другой стороны, GMail на самом деле отправляет почту на домен, содержащий умлаут (не-punycode, даже если я специально использую формат punycode в почтовом адресе получателя). Поэтому мне нужно либо научить свой сервер обрабатывать не-ASCII-символы, либо научить Google отправлять через punycode. Или научить свой сервер преобразовывать умлауты в punycode. Вариант 2, очевидно, не совсем подходит, поэтому подходят 1 или 3.

Запись mail.log из почты хостера, не являющегося GMail:

postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays=0.1/0/0.01/3.9, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4Gn0zm04JHzLxc0)

Запись mail.log из почты GMail:

Aug 14 15:06:44 s postfix/smtpd[2281]: warning: problem talking to server 127.0.0.1:12340: Connection timed out
Aug 14 15:06:44 s postfix/smtpd[2281]: NOQUEUE: reject: RCPT from mail-ot1-x32b.google.com[2607:f8b0:4864:20::32b]: 451 4.3.5 <user@dömain2.tld>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>

решение1

Поскольку я все еще не вижу полного решения (перезапись адресов в Postfix могла бы сработать, но это был бы печальный конец этой истории), я собираю свои шаги диагностики в ответе:

  • Приобретитеэффективныйконфигурации, например, выгружаемой командами postfix -nи postfix -Mпочтовым сервером, чтобы обеспечить четкое понимание того, как интегрируются различные службы (в первую очередь, amavis).

  • Отдельно тестируйте не-ASCII в локальной части, в неадресных заголовках и в доменных именах (есть как A-Label, закодированный с помощью Punycode, чтобы начать как xn--, так и как Unicode, непосредственно содержащий не-ASCII буквы)

  • Оставьте SMTPUTF8отключенным в Postfix — Dovecot пока не полностью поддерживает обработку почты, которая может быть получена таким образом, и это не является обязательным и не всегда помогает в решении проблем в amavis.

  • У amavis есть $log_levelнастройка (в Debian, предположительно в /etc/amavis/conf.d/), котораяможет быть обнулено как часть вашегоiRedMailраспределение.

  • Если у вас есть возможность переключить это, запустите amavis как предварительную очередьмfilter (вместо того, чтобы использовать smtp после очередифfilter) может выявить или не выявить более полезную ошибку или поведение.

  • amavis исправил некоторые специфичные для mariadb проблемы SQL+Unicodeпосле версии 2.11, которую вы используете, полезная ошибка может быть в журнале базы данных - или ее можно исключить, сравнив тот же стек, настроенный с функционально идентичным бэкэндом postgres (postgres не разделяет функции/ошибки Unicode MySQL&MariaDB)

Связанный контент