.png)
После успешной настройки сервера 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)