So fügen Sie gescannte E-Mails mit Sendmail erneut in die Warteschlange ein

So fügen Sie gescannte E-Mails mit Sendmail erneut in die Warteschlange ein

Ich möchte eingehende E-Mails virtual_transportan ein Transportmittel spamassassin(main.cf: virtual_transport=spamassassin) weiterleiten und die gescannten E-Mails anschließend mit Sendmail wieder in Postfix einfügen.

Der Transport sieht folgendermaßen aus:

spamassassin unix   -    n     n   -   -    pipe
    flags=hu user=vmail:mail argv=/usr/bin/spamc -u ${recipient} -e /usr/sbin/sendmail -f ${sender} ${recipient}

Dies sollte möglich sein gemäß derPostfix-Dokumentation:

Websites mit hohem Datenvolumen sollten die Verwendung „einfacher“ Inhaltsfilter vermeiden, die gescannte E-Mails über Postfix sendmail(1) und postdrop(1) erneut einfügen.

Bei meinem aktuellen Sendmail-Aufruf /usr/sbin/sendmail -f ${sender} ${recipient}wird die E-Mail in einer Schleife durchlaufen, indem sie zurück in die Warteschlange und dann zurück an Spamassassin usw. geleitet wird.

Nach meinem Verständnis der Postfix-Dokumentation sendmailwerden mit Postfix zugestellte E-Mails im maildropVerzeichnis abgelegt und dann mit abgeholt pickup. Ich habe versucht, ein -o virtual_transport=dovecotan das Abholtransportmittel anzuhängen, um die Warteschlange zu vermeiden, aber das hat nicht geholfen. (Ich nehme an, diese Optionen können nur an SMTP-Transportmittel angehängt werden).

Wie kann ich mit Spamassassin gescannte E-Mails zur endgültigen Zustellung wieder in die Warteschlange einfügen, ohne eine Schleife zu verursachen?

Antwort1

Wie kann ich mit Spamassassin gescannte E-Mails zur endgültigen Zustellung wieder in die Warteschlange einfügen, ohne eine Schleife zu verursachen?

NEIN Das kannst du nicht

Erläuterung

Ich verstehe den Grund, warum Sie virtual_transportE-Mails in Spam Assassin umleiten. Sie möchten nur die E-Mails scannen, die für Sie bestimmt sind virtual_mailbox_domain. Leider folgt es nicht demempfohlen Einrichtung für einfachen Inhaltsfilterdass content_filterstattdessen Parameter verwendet werden virtual_transport.

Warum kann ich nicht virtual_transportzu Pickup oder SMTP wechseln?

Im Allgemeinen hier die E-Mail-Reise über Postfix-Code

Input  --> cleanup --> qmgr --> Output 
*smtpd                          *local     
*pickup                         *virtual
*qmqpd                          *smtp
                                *lmtp
                                *pipe

Im cleanupDaemon wird Postfix Ihre E-Mails „weiterleiten“, unabhängig davon, ob sie zu virtuellen, lokalen, SMTP- oder anderen Transportmitteln gehören. Eine Ausnahme ist, wenn ein nicht leerer Parameter content_filteran den Eingabedienst übergeben wurde ( smtpd,,, ). In diesem Fall überschreibt Postfix die Nachrichtenweiterleitung und sendet die E-Mail stattdessen an.pickupqmqpdcontent_filter

Noch ein Hinweis: Standardmäßig beziehen alle Postfix-Dienste den Parameterwert, main.cfsofern Sie ihn nicht durch die Verwendung von überschreiben.-o Parameter=Wert on master.cf. Aber nicht jeder Parameter wird man 5 postconfvon einem Dienst verwendet. Zum BeispielInhaltsfilternur verwendet von pickup, smtpdund qmqpdso können Sie setzen-o content_filter=amavis:[127.0.0.1:10025auf sie. Ein weiteres Beispiel: Es ist nicht sinnvoll,-o SMTP-Bind-Adresseda smtpddieser Parameter nur im smtpService verwendet wird.

Das gleiche Argument kann auf Ihre Frage angewendet werden: „Warum kann ich bestehen?-o virtueller_TransportIn pickup?"

Hier sind die verschiedenen Alternativen für Ihr Setup

  • Verwenden Sie es content_filterwie in der Postfix-Dokumentation beschrieben. Der Nachteil besteht darin, dass Sie auch die E-Mails scannen, die außerhalb Ihrer Domäne weitergeleitet werden.

  • Verwendencontent_filter über ACCESS-Tabelle und FILTER-Aktion. Auf diese Weise können Sie eingehende E-Mails selektiv scannen. Leider müssen Sie Ihre E-Mails virtual domainerneut in diese Tabelle eintragen. . Sie können dies vermeiden, indem Sie die ACCESS-Tabelle sorgfältig nach , platzieren permit_mynetworks. permit_sasl_authenticatedAuf diese Weise werden ausgehende E-Mails bereits zugelassen und Sie scannen nur eingehende E-Mails. (Gutschrift für OP-Kommentar:) )

  • Verwenden vonMehrere Postfix-Instanzen. Auf diese Weise können Sie den virtual_transportParameter beibehalten und Spamc fügt die E-Mail in Ihre zweite Instanz ein. Und dann können Sie virtual_transportin verschiedenen Instanzen unterschiedliche Definitionen vornehmen. Aber das ist etwas übertrieben, wenn Sie Ihr Setup einfach halten möchten.

verwandte Informationen