
Erläuterung
Ich habe eine Pipe wie folgt verwendet, um eingehende E-Mails an meine Laravel-App weiterzuleiten, aber zuerst nach Spam zu suchen. Folgendes wird als virtueller Transport verwendet
myhook unix - n n - - pipe
flags=F user=apache argv=/usr/bin/spamc -e /usr/bin/php -f /var/www/laravel/artisan mail:incoming ${sender} ${size} ${recipient}
Eigentlich sollte spamc mit dem Benutzer spamd ausgeführt werden. Wenn ich das aber tue, kann Apache die Maildatei nicht wie erforderlich speichern, da diese Dateien Apache gehören und Laravel versucht, neu hinzugefügte Dateien zu chownen.
Was ich frage
Es muss doch eine bessere Möglichkeit geben, E-Mails zunächst als Spamd-Benutzer an Spamassassin umzuleiten und die Ausgabe dann als Apache an PHP zu senden. Oder ist das einfach nicht möglich? Gibt es eine bessere Möglichkeit, das zu tun?
Danke schön.
Antwort1
Ich hatte Erfolg mit der Verwendung einer separaten Pipe für SMTP wie
smtp inet n - n - - smtpd
-o content_filter=spamassassin
# ...
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
myhook unix - n n - - pipe
flags=F user=apache argv=/usr/bin/php -f /var/www/laravel/artisan mail:incoming ${sender} ${size} ${recipient}
Dies bedeutet, dass nur von außen eingehende E-Mails an Spamc gesendet werden und Spamc sie anschließend an Postfix zurücksendet, damit sie ordnungsgemäß transportiert werden können.
Zuerst war ich verwirrt und habe es nicht versucht, weil ich dachte, es würde eine Endlosschleife des E-Mail-Versands an sich selbst bedeuten