Назад | Перейти на главную страницу

Как я могу создать сообщение о недоставке?

У меня есть собственный почтовый сервер, который (помимо прочего) обрабатывает электронные письма для одной из моих служб. Данная служба принимает заказы и отправляет электронные письма с подтверждением бронирования. Электронные письма приходят с адреса noreply@mydomain.com с заголовком «Ответить», который соответствует адресу электронной почты организатора.

Некоторые почтовые клиенты, похоже, не соблюдают заголовок Reply To, и поэтому я получаю письма, отправленные на адрес noreply@mydomain.com.

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

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

Что делает электронное письмо с недоставленным сообщением о недоставке? Должен ли он быть сгенерирован отправляющим почтовым сервером в ответ на ошибку SMTP? Если да, то как мне заставить его отскочить и настроить сообщение об отказе (я использую postfix и Этот метод для запуска скрипта). Если нет, могу ли я изменить электронное письмо, которое я отправляю в скрипте, на сообщение о недоставке? Как мне это сделать? Это конкретные заголовки в письме?

Принимающий MTA никогда не должен отказывать. SMTP отказ на этапе подключенияion - единственный способ избежать обратного рассеяния. Ваш скрипт скоро станет инструментом для рассылки спама.

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

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

Пример конфигурации для настраиваемого сообщения об ошибке в Postfix:

  • Постфикс main.cf:

    smtpd_recipient_restrictions =
        . . .
        check_recipient_access hash:/etc/postfix/denied_recipients,
        . . .
    
  • /etc/postfix/denied_recipients:

    noreply@example.com REJECT This address does not accept email. See https://example.com/contact
    
  • postmap /etc/postfix/denied_recipients, потому что это hash: Berkeley DB.

Вся суть адреса «noreply@somedomain.tld» в том, что он никуда не ведет.

Поместите адрес, на который вы хотите, чтобы люди ответили, в теле письма и удалите почтовый ящик с ошибками со своего сервера (ов). В этом случае все отправка на адрес noreply возвращает их почту - включая спамеров - но все грамотные и законные пользователи будут знать, как доставить почту на правильный адрес.