解釋

解釋

解釋

我一直在使用以下管道將傳入郵件傳輸到我的 laravel 應用程序,但首先檢查是否有垃圾郵件。以下被用作虛擬傳輸

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}

但實際上, spamc 應該與 spamd 用戶一起運行,但如果我這樣做,那麼 apache 就無法根據需要存儲郵件文件,因為這些文件歸 apache 所有,並且 laravel 將嘗試 chown 新添加的文件。

我在問什麼

一定有更好的方法,首先將郵件重定向到 spamassassin 作為 spamd 用戶,然後將輸出發送到 php 作為 apache。還是這是不可能的?有更好的方法來做到這一點嗎?

謝謝。

答案1

我發現使用單獨的 smtp 管道取得了成功,例如

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}

這意味著只有來自外部的傳入郵件才會發送到 spamc,然後 spamc 將其發送回 postfix 以按其應有的方式進行傳輸。

起初我很困惑,沒有嘗試這個,因為我認為這會導致郵件發送給自身的無限循環

相關內容