Адрес отправителя письма не совпадает с уведомлением, и я не могу понять почему

Я пытаюсь использовать https://emailit.com/ на форуме, который работает уже около 7 лет (сейчас используется Mailgun). Email It отказывается отправлять письма с ошибкой:

 530 From header does not match MAIL FROM address

Когда я смотрю исходный код писем, отправленных через Mailgun, вижу строку "Sender: ", например: “Sender: admin=example.com@www.example.com”. В тестовых письмах с других форумов такой строки нет.

Если я отключаю все плагины, проблема сохраняется.

Если я очищаю базу данных, проблема исчезает.

При восстановлении базы данных проблема возвращается.

Я искал в пользовательских текстах и настройках. Выполнял запрос к PostgreSQL ко всем полям базы данных в поисках “admin=www” и нескольких других значений (по крайней мере, ИИ сообщил, что сделал это, и это выглядело правдоподобно).

Пытался добавить вывод (put), чтобы увидеть, какое сообщение передаётся в компонент, отвечающий за отправку писем (это было вчера, и я забыл названия классов). Объяснения там я не нашёл.

Я в тупике.

Буду признателен за любые идеи, куда можно посмотреть дальше.

The Sender: — это что-то другое. Ошибка, с которой вы столкнулись, указывает на несоответствие между «конвертом» (адрес From по RFC821) и заголовком «From:» (RFC822).

Я подозреваю, что emailit (или, возможно, Discourse — мы уже слишком долго управляем собственными почтовыми серверами) устанавливает отправителя конверта в адрес электронной почты, с которым вы аутентифицируетесь.

Я думаю (!), что вам следует убедиться, что notification_email и DISCOURSE_SMTP_USER_NAME совпадают для emailit.

Большое спасибо!

Я этого опасался. Я гораздо меньше знаком с RFC822, чем 30 лет назад. Я знаю, что существуют «From », «From: » и «Sender: », но больше ничего не помню.

Может быть, в этом году я этим займусь. Электронная почта казалась гораздо проще, когда мне приходилось портировать Sendmail и UUCP на Linux, чем сейчас. :slight_smile:

Казалось многообещающим. Но ничего не вышло. Интересно, что emailit указывает, что SMTP_USER_NAME должен быть «emailit».

Но, опять же, настройки SMTP (включая notification_email) в app.yml работали отлично на этом же самом сервере с пустой базой данных и перестали работать после восстановления базы данных.

Discourse устанавливает envelope-from в адрес ответа по электронной почте.

ДАЖЕ ЕСЛИ reply-by-email отключен! :person_shrugging: :crying_cat_face:

Я видел, что что-то там было (казалось, это не совпадало с тем, что я наблюдал?), но подумал, что, раз reply-by-email отключен, это не имеет значения.

О боже. Большое спасибо! :rocket: :tada:

Адрес для ответов по электронной почте критически важен для обнаружения ошибок при отправке исходящих писем :+1: