설명

설명

설명

나는 들어오는 메일을 내 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은 새로 추가된 파일을 삭제하려고 시도합니다.

내가 묻는 것

메일을 먼저 spamd 사용자로 spamassassin으로 리디렉션한 다음 출력을 Apache로 PHP로 보내는 더 좋은 방법이 있어야 합니다. 아니면 이것이 불가능합니까? 이를 수행하는 더 좋은 방법이 있습니까?

감사합니다.

답변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로 다시 보내 원래대로 전송된다는 의미입니다.

처음에 나는 혼란스러워서 이 방법을 시도하지 않았습니다. 그 자체로 메일을 보내는 끝없는 루프가 끝날 것이라고 생각했기 때문입니다.

관련 정보