Я использовал конвейер, как показано ниже, для пересылки входящей почты в мое приложение 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 попытается для просмотра недавно добавленных файлов.
Должен быть лучший способ перенаправить почту сначала на spamassassin как пользователь spamd, а затем после отправки вывода на php как apache. Или это просто невозможно? Есть ли лучший способ сделать это?
Спасибо.
я нашел успешное использование отдельного канала для 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 для транспортировки, как это должно быть.
Сначала я был в замешательстве и не пробовал, потому что думал, что это закончится бесконечным циклом отправки почты самому себе