postfix: como gerar um salto

0

Existe uma maneira de gerar uma rejeição programaticamente? A única coisa que encontrei é o sinalizador "-N" no wrapper do sendmail e no parâmetro de configuração bounce_template_file :

/usr/sbin/sendmail -N failure

Mas, por algum motivo, gera uma mensagem normal. Nem mesmo usando o modelo de rejeição.

Aqui está o cenário: o postfix aceitou uma mensagem de fora e a empurrou para um filtro externo via SMTP. Baseando-se na política, decidimos rejeitar a mensagem. Agora precisamos gerar um NDR. Como fazer isso com o postfix?

Obrigado!

    
por Sergey Romanovsky 17.03.2016 / 02:13

1 resposta

1

Você poderia simplesmente criar um novo e-mail e enviá-lo para o remetente.

Uma maneira de fazer isso seria desviá-lo para um script - por exemplo, usando a tabela de transporte para capturar o email e a tabela principal para canalizar a saída para um script para gerar a resposta de rejeição.

A entrada na tabela principal pode ser algo como

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

Em vez de enviar o envio da mensagem para REJECT, você a envia para "bouncer". Não tenho certeza de como você está rejeitando, então não sei como dizer para ir ao bouncer. Eu acho que você poderia usar a tabela de transporte para isso, ou a tabela header_checks com o alvo FILTER.

Um script PHP simples para enviar a mensagem devolvida (não testada) pode parecer algo nas seguintes linhas:

#! /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();
  ?>
    
por 17.03.2016 / 03:29