У меня установлен OpenSMTPD / Dovecot на сервере OpenBSD. Недавно я столкнулся с проблемой, при которой Dovecot LMTP отклонял сообщение, отправленное локальному пользователю с адреса, содержащего один апостроф (например, firstname.o'lastname@example.com
). По-видимому, апостроф, а также ряд других специальных символов являются допустимыми символами в локальной части адреса электронной почты (это все, что находится слева от @
персонаж).
Сообщение, которое я получаю в журналах:
Jun 14 11:57:34 atlantic smtpd[42606]: 21749fd12ac76b57 mda delivery evpid=56aed6237d6444a0 from=<firstname.o'lastname@example.com> to=<me@example.org> rcpt=<me@example.org> user=me delay=0s result=PermFail stat=Error ("mail.lmtp: LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart")
где example.com
это внешний домен и example.org
местный.
Часть сообщения: LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart
возвращается dovecot-lmtp
.
Мой вопрос: знает ли кто-нибудь о варианте конфигурации, похожем на auth_username_chars
в котором перечислены допустимые символы в адресе электронной почты, чтобы Dovecot LMTP не отклонял такие электронные письма? или, может быть, вы знаете другой способ заставить его принимать электронную почту с такого адреса?
Моя версия голубятни:
$ dovecot --version
2.3.5.1 (7ec6d0ade)
И если это имеет значение, я использую OpenBSD 6.5 с исправлением до 005_libssl.
Спасибо!
Игнорирование дебатов о том, может ли LDA должен требуется, чтобы любой удаленный адрес соответствовал спецификации, я считаю, что синтаксический анализатор dovecot очень близок к RFC5322, и то, что вы видите, не dovecot LMTP отклоняет адрес с апострофом.
Вы можете убедиться, что голубятня является принятие вашего адреса путем инициирования сеанса LMTP самостоятельно:
$ nc -U /var/dovecot/lmtp
220 example.com Dovecot ready.
LHLO example.com
250-example.com
MAIL FROM:<firstname.o'lastname@example.com>
250 2.1.0 OK
RCPT TO:<postmaster@example.com>
250 2.1.5 OK
DATA
empty
.
354 OK
250 2.0.0 <postmaster@example.com> FOOBAR Saved
Если dovecot принимает почту при ручной проверке в LMTP, но не работает при получении от вашего MTA, вы хотите тщательно изучить конфигурацию вашего почтового сервера.
Ваш почтовый сервер как-то редактирует адрес перед тем, как передать его голубятне? Получите стенограмму вашего сеанса LMTP (попробуйте lmtp_rawlog_dir
в dovecot) и сравните, переписывается ли адрес между SMTP и LMTP. я считать аналогичные ограничения, которые применяются к dovecot-lda в отличие от dovecot-lmtp, применяются при использовании mail.lmtp
, который требует, чтобы его параметры также были допустимыми аргументами командной строки.