Ich möchte eingehende E-Mails virtual_transport
an 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 sendmail
werden mit Postfix zugestellte E-Mails im maildrop
Verzeichnis abgelegt und dann mit abgeholt pickup
. Ich habe versucht, ein -o virtual_transport=dovecot
an 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_transport
E-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_filter
stattdessen Parameter verwendet werden virtual_transport
.
Warum kann ich nicht virtual_transport
zu 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 cleanup
Daemon 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_filter
an den Eingabedienst übergeben wurde ( smtpd
,,, ). In diesem Fall überschreibt Postfix die Nachrichtenweiterleitung und sendet die E-Mail stattdessen an.pickup
qmqpd
content_filter
Noch ein Hinweis: Standardmäßig beziehen alle Postfix-Dienste den Parameterwert, main.cf
sofern Sie ihn nicht durch die Verwendung von überschreiben.-o Parameter=Wert on master.cf
. Aber nicht jeder Parameter wird man 5 postconf
von einem Dienst verwendet. Zum BeispielInhaltsfilternur verwendet von pickup
, smtpd
und qmqpd
so 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 smtpd
dieser Parameter nur im smtp
Service 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_filter
wie in der Postfix-Dokumentation beschrieben. Der Nachteil besteht darin, dass Sie auch die E-Mails scannen, die außerhalb Ihrer Domäne weitergeleitet werden.Verwenden
content_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. Sie können dies vermeiden, indem Sie die ACCESS-Tabelle sorgfältig nach , platzierenvirtual domain
erneut in diese Tabelle eintragen.permit_mynetworks
.permit_sasl_authenticated
Auf 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_transport
Parameter beibehalten und Spamc fügt die E-Mail in Ihre zweite Instanz ein. Und dann können Sievirtual_transport
in verschiedenen Instanzen unterschiedliche Definitionen vornehmen. Aber das ist etwas übertrieben, wenn Sie Ihr Setup einfach halten möchten.