Есть ли способ генерировать отскок программно? Единственное, что я нашел, это флаг "-N" в оболочке sendmail и параметр конфигурации bounce_template_file :

/usr/sbin/sendmail -N failure

Но по какой-то причине он генерирует обычное сообщение. Даже не используя шаблон отказов.

Вот сценарий: postfix принял сообщение извне и отправил его во внешний фильтр через SMTP. Опираясь на политику, мы решили отклонить сообщение. Теперь нам нужно сгенерировать отчет о недоставке. Как это сделать с постфиксом?

Спасибо!

1 ответ1

1

Вы просто создадите новое электронное письмо и отправите его отправителю.

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

Запись в главной таблице может выглядеть примерно так

bouncer
    unix    -   n   n   -   -   pipe flags=Rq
    user=nobody argv=/path/to/bounce.script ${sender} ${recipient}

Вместо того, чтобы отправлять отправку сообщения в REJECT, вы бы отправили его "вышибалу". Не уверен, как ты это отвергаешь, поэтому не уверен, как сказать, чтобы он пошел вместо вышибалы. Я думаю, вы могли бы использовать для этого транспортную таблицу или таблицу header_checks с целью FILTER.

Простой PHP-скрипт для отправки отказов (непроверенный) может выглядеть примерно так:

#! /usr/bin/php
<?php
      # Make sure phpmailer is installed !  (apt-get install phpmailer
      # or download from source and adjust path)
      include phpmailer/class.phpmailer.php

      $from=$argv[1];
      $to=$argv[2];

      $tz=date_default_timezone_get();
      date_default_timezone_set($tz);

      $message="Bounce Message text here";
      $msg=new PHPMailer();
      $msg->From=$to;
      $msg->FromName=$from;
      $msg->Subject="Bounce Notification Subject Line";
      $msg->Body="Bounce Notification Message";
      $msg->AddAddresses($from);
      $msg->send();
  ?>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .