Подтвердить что ты не робот

Установите заголовки электронной почты так, чтобы отскакивающие электронные письма переходили по определенному адресу

Из нашего приложения rails мы отправляем некоторые системные электронные письма с адресом "from", установленным на [email protected] Если эти отказы будут отправлены обратно на этот адрес нашим почтовым сервером. Однако то, что я хотел бы сделать, это не возвращать электронные письма, отправленные обратно на сайт [email protected], но на другой адрес, например, [email protected]

Есть ли заголовок или что-то, что я могу установить в письме, которое достигнет этого, без меня придется идти и исследовать капризы нашего почтового сервера? Мы отправляем письма с использованием exim в случае, если это релевантно.

cheers, max

4b9b3361

Ответ 1

Я просто понял это в exim4 после многого чтения о конфигурации exim.

Сначала вы хотите, чтобы ваше приложение добавило следующий заголовок:

Return-Path: <[email protected]>

Работает с скобками или без них. Exim добавит скобки в конце в любом случае.

Во-вторых, это была трудная часть. Exim всегда хотел переопределить мой адрес Return-Path: с пользователем unix, который его отправил. Вы можете использовать /etc/email -addresses в Ubuntu для установки статического электронного письма для пользователя вашего веб-приложения, но это все еще игнорирует заголовок Return-Path. Вот как я изменил конфигурацию exim, чтобы уважать Return-Path из веб-приложения:

В основной области конфигурации добавьте:

return_path_remove = false

В соответствующей конфигурации маршрутизатора (например, dnslookup):

dnslookup:
  # ...
  errors_to = ${if def:h_return-path: {${address:$h_return-path:}} fail}
  headers_remove = return-path
  no_more

Теперь exim должен скопировать адрес заголовка Return-Path на уровне конверта и удалить исходный заголовок Return-Path.

Я пробовал множество других конфигурационных директив, и это единственный способ, который действительно работал у меня.

Ответ 2

Ошибки-To устарели, поэтому почтовые серверы, как правило, игнорируют этот заголовок - большинство серверов будут отскакивать до отправителя конверта.

Это адрес электронной почты, который ваш почтовый клиент отправляет как часть подключение к SMTP-серверу (не обязательно адрес "От" - хотя он как правило, то же самое).

Я не знаю, все это хорошо, но я нашел this - хотя, насколько я могу судить, Return-Path является reset по MTAs, чтобы соответствовать информации MAIL FROM от клиента, поэтому, похоже, вы не можете ее установить.

Я думаю, что единственное, что вы можете сделать, это установить адрес отказов на вашем сервере.

Ответ 4

3 года слишком поздно, но на всякий случай кто-то еще приходит сюда. Return-Path является правильным заголовком, но, как указал Джеймс Гаррисс выше, он должен быть размещен там на сайте, выполняющем окончательную доставку. Вы не можете просто вставить его в себя.

Если вы пишете электронные письма, напрямую подключаясь к SMTP-серверу, это легко - команда MAIL содержит обратный путь. Если вы отправляете

MAIL FROM:<[email protected]>

на SMTP-сервер, тогда отскоки будут возвращены на [email protected].

Если вы не создаете SMTP, и вы используете MTA (то есть exim/etc), вам нужно найти ключ командной строки для вашего MTA. Для sendmail -f [email protected] "устанавливает адрес отправителя", и это заканчивается как Return-Path в окончательной доставке почты, а [email protected] получит отскоки (я делаю именно это для автогенерированных писем). Я не пробовал это на exim, но он имеет точно такой же вариант, и он должен работать.

Ответ 5

Заголовок

Return-Path записывается сервером , а не сервером-отправителем. И согласно RFC 5321, это то же самое, что и адрес, указанный в команде MAIL FROM.

Даже если вы сами устанавливаете заголовок Return-Path, принимающий сервер перезапишет это.

Теперь, здесь вещь, адрес в команде MAIL FROM и адрес в заголовке From могут быть разными. Получающий пользователь не видит адрес MAIL FROM. Они видят только адрес заголовка From.

Итак, если вы хотите игнорировать отскоки или хотите, чтобы они переходили на определенный адрес, вы должны использовать этот адрес в команде MAIL FROM.

Но в заголовке From вы можете просто использовать [email protected] - пользователь увидит этот адрес.


Чтобы упростить еще немного, вы отправляете электронное письмо с адреса [email protected]. Получающий сервер отправит отскоки на этот адрес.

Чтобы показать вашему пользователю адрес [email protected] вместо адреса handle_bounce..., установите заголовок From в сообщении MIME необработанного сообщения на адрес noreply....


Недавно я получил бесплатное письмо от Bitbucket. Здесь необработанное сообщение:

Return-Path: <[email protected]r.atlassian.com>
From: "Atlassian Bitbucket" <[email protected]>
To: <[email protected]>
Subject: Continuous delivery, without the headache.
Date: Wed, 28 Feb 2018 12:40:53 -0600
MIME-Version: 1.0
Reply-To: "Atlassian Bitbucket" <[email protected]mailer.atlassian.com>

... message body ...

Как вы можете видеть, Return-Path - это адрес, предназначенный для обработки отскоков. Но адрес From - это почта [email protected]. Это означает, что это письмо действительно отправлено этим обратным адресом обработки, а не адресом noreply.

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