Acontece que eu tive que adicionar a seguinte linha à configuração / etc / mail / spamassassin e então re-compilar o spamassassin. Note que é importante incluir o nome do arquivo no final, por ex. bayes
bayes_path /path/to/dir/bayes
Eu estou executando o spamassassin no Ubuntu 14.04 como root. Quando eu estou chamando qualquer um dos métodos, como Check ou ReportSpam, também estou passando em outro usuário que a verificação deve ser executada como. No entanto, recebo um problema de permissões
spamd: Can't locate Mail/SpamAssassin/PerMsgLearner.pm: Permission denied at /usr/share/perl5/Mail/SpamAssassin.pm line 644, line 7.
Olhando para a linha 644 nesse script perl, ele tenta importar outro arquivo perl
require Mail::SpamAssassin::PerMsgLearner;
Este não é um problema em execução como root. O problema com a execução das funções como raiz é que os arquivos bayes (para aprender sobre o tempo sobre spam) são gravados como / inexistentes, um diretório que não existe (é o diretório home do usuário 'nobody').
Portanto, como root ou outro usuário, não consigo que o SpamAssassin grave o arquivo bayes no disco para que a funcionalidade de aprendizado seja interrompida.
Acontece que eu tive que adicionar a seguinte linha à configuração / etc / mail / spamassassin e então re-compilar o spamassassin. Note que é importante incluir o nome do arquivo no final, por ex. bayes
bayes_path /path/to/dir/bayes
Tags permissions users spamassassin