Рейтинг:1

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

флаг ke

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

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

виртуальный_алиас_доменов = domain2.tld
virtual_alias_maps = хеш:/etc/postfix/виртуальный

Примечание. Я не удалял ни одну из существующих записей 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]>: адрес получателя отклонен : проблема с конфигурацией сервера; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-oi1-x231.google.com>

И:

postfix/smtpd[5644]: предупреждение: проблема с подключением к серверу 127.0.0.1:12340: время ожидания соединения истекло

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

dovecot 513 root 67u IPv4 17087 0t0 TCP 127.0.0.1:12340 (СЛУШАТЬ)

В моем журнале dovecot я неоднократно нахожу следующую строку:

dovecot: статус квоты: ошибка: статус квоты: клиент отправил неверный адрес получателя: недопустимый символ в пути

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

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

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

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

С уважением, Сопли

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

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

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

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

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

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

/var/log/mail.log:

14 августа 14:24:36 s postfix/postfix-script[1637]: предупреждение: символическая ссылка покидает каталог: /etc/postfix/./madefs.out
14 августа 14:24:37 с amavis[573]: запуск. /usr/sbin/amavisd-new на host.domain1.tld amavisd-new-2.11.0 (20160426), поддержка Unicode, LC_ALL="C", LANG="en_US.UTF-8"
14 августа 14:24:37 s postfix/postfix-script[1819]: запуск почтовой системы Postfix
14 августа 14:24:37 s postfix/master[1821]: демон запущен -- версия 3.4.14, конфигурация /etc/postfix
14 августа, 14:24:39 amavis[1915]: Net::Server: Группа не определена. По умолчанию EGID '121 121'
14 августа, 14:24:39 amavis[1915]: Net::Server: Пользователь не определен. По умолчанию EUID '113'
14 августа, 14:24:39 amavis[1915]: нет программы ext для .F, пробовал: разморозить, заморозить -d, расплавить, fcat
14 августа, 14:24:39 amavis[1915]: нет программы ext для .zoo, пробовал: zoo, unzoo
14 августа, 14:24:39 amavis[1915]: Нет декодера для .F   
14 августа, 14:24:39 amavis[1915]: Нет декодера для .zoo 
14 августа, 14:24:39 s amavis[1915]: Использование основного внутреннего кода антивирусного сканера для clamav-socket
14 августа, 14:24:39 amavis[1915]: найден дополнительный AV-сканер clamav-clamscan в /usr/bin/clamscan

/var/log/dovecot/dovecot.log:

14 августа 14:24:26 с dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) запуск для pop3, imap, sieve, lmtp (дампы ядра отключены)
14 августа 14:24:43 с голубятня: статистика: Ошибка: (считыватель статистики): не ответил с действительной строкой ВЕРСИИ: EXPORT#011global
14 августа 14:24:43 с голубятня: статистика: Ошибка: (считыватель статистики): не ответил с действительной строкой ВЕРСИИ: EXPORT#011global

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

14 августа 14:24:36 s postfix/postfix-script[1637]: предупреждение: символическая ссылка покидает каталог: /etc/postfix/./madefs.out
14 августа 14:24:37 s postfix/postfix-script[1819]: запуск почтовой системы Postfix
14 августа 14:24:37 s postfix/master[1821]: демон запущен -- версия 3.4.14, конфигурация /etc/postfix

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

14 августа 14:59:46 amavis[571]: старт. /usr/sbin/amavisd-new на host.domain1.tld amavisd-new-2.11.0 (20160426), поддержка Unicode, LC_ALL="C", LANG="en_US.UTF-8"

Поведение осталось прежним, к сожалению. После дальнейшего анализа журналов я понял, что похоже, что письма от провайдеров, которые приходят, отправляются через punycode (даже если я специально отправлял их в домен с умляутом/не-ASCII-символом). GMail, с другой стороны, фактически отправляет почту в домен, содержащий умляут (не punycode, даже если я специально использую формат punycode в почтовом адресе получателя). Итак, мне нужно либо научить свой сервер обрабатывать не-ASCII-символы, либо мне нужно научить Google отправлять через 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, задержка=4, задержки= 0.1/0/0.01/3.9, dsn=2.0.0, статус=отправлено (250 2.0.0 от MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 OK: в очереди как 4Gn0zm04JHzLxc0)

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

14 августа, 15:06:44 с postfix/smtpd[2281]: предупреждение: проблема с подключением к серверу 127.0.0.1:12340: время ожидания соединения истекло
14 августа 15:06:44 с 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>: адрес получателя отклонен: проблема с конфигурацией сервера; from=<[email protected]> to=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>
SnotMcBooger avatar
флаг ke
Спасибо за вклад @anx. Я добавил журналы после загрузки и некоторые дополнительные примечания. Я включил поддержку SMTPUTF8 в постфиксе, поскольку она не была включена, но, к сожалению, без изменений. Я также отключил функции квот, но заметил разницу в поведении. Как указано в сообщении, кажется, что письма, которые проходят через punycode, отправляются в punycode, в отличие от писем Gmail, которые фактически отправляются в домен, содержащий не-ascii-символ. Может быть, есть способ перевести это в punycode перед дальнейшей обработкой?
SnotMcBooger avatar
флаг ke
Спасибо за подсказку, я восстановил настройку SMTPUTF8. Я полностью перезапускал сервер несколько раз. На самом деле, я перезагрузил сервер непосредственно перед извлечением журналов, которые я добавил к сообщению. Тем не менее перезагрузил его, те же результаты, хотя. Тайм-аут происходит только с почтой, отправленной на «dömain2.ch», любая другая почта проходит. Даже punycode. Тайм-аут происходит на порту dovecot, но только при отправке почты, содержащей умляут в домене, без преобразования в punycode отправляющим почтовым сервером, например, google или hotmail. Обычно сервер обмена кажется маленьким.
Рейтинг:0
флаг fr
anx

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

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

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

  • Держать СМТПУТФ8 отключено в Postfix - Dovecot еще не полностью поддерживает обработку почты, которая может быть получена таким образом, и это не обязательно и не обязательно полезно для решения проблем в amavis.

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

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

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

anx avatar
флаг fr
anx
Я очень надеюсь, что это *не* еще одна из тех проблем "Юникод, но не тот" снова..

Ответить или комментировать

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