Ошибки SpamAssassin (spamd), причины, описание, возможные пути их решения: cannot create tmp lockfile; failed to create readable default_prefs; etc.
spamd[xxxx]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /home/user/.spamassassin/bayes.lock.hostname.localhost.xxxx for /home/user/.spamassassin/bayes.lock: Отказано в доступе
Эта ошибка может быть причиной ошибки фильтрования сообщений в Claws Mail:
"Модуль SpamAssassin не смог отфильтровать сообщение. Вероятная
причина этого - недоступный демон spamd. Пожалуйста, убедитесь, что
spamd запущен и доступен."
---
The Spamassassin plugin couldn't filter a message. The probable cause of the error is an unreachable spamd daemon. Please make sure spamd is running and accessible.
При этом, демон spamd запущен, а сама ошибка "Модуль SpamAssassin не смог отфильтровать сообщение" может проявляться не регулярно, которой как правило сопутствует ошибка "safe_lock: cannot create tmp lockfile" и фиксируется в /var/log/syslog следующим образом:
$ less /var/log/syslog|grep -i fail|grep -i spam ... Nov 24 15:45:23 hostname spamd[xxxx]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /home/user/.spamassassin/bayes.lock.hostname.localhost.xxxx for /home/user/.spamassassin/bayes.lock: Отказано в доступе
Решается следующим образом:
$ mkdir -p /var/spamassassin/bayes_db/ $ less /etc/passwd|grep spam debian-spamd:x:121:127::/var/lib/spamassassin:/bin/sh $ chown -R debian-spamd:debian-spamd /var/spamassassin $ vi /etc/mail/spamassassin/local.cf bayes_path /var/spamassassin/bayes_db/bayes bayes_file_mode 0777 $ /etc/init.d/spamassassin restart $ ls -la /var/spamassassin/bayes_db/ итого 100 drwxr-xr-x 2 debian-spamd debian-spamd 4096 ноя 27 16:07 . drwxr-xr-x 3 debian-spamd debian-spamd 4096 ноя 25 06:17 .. -rw-rw-rw- 1 debian-spamd debian-spamd 12288 ноя 27 16:07 bayes_seen -rw-rw-rw- 1 debian-spamd debian-spamd 90112 ноя 27 16:07 bayes_toks
spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs
Проблема проявляется при использовании почтового клиента Claws Mail совместно с SpamAssassin:
$ less /var/log/syslog|grep -i fail|grep -i spam Nov 24 11:10:13 hostname spamd[xxxx]: spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs Nov 24 12:41:33 hostname spamd[xxxx]: spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs Nov 24 12:41:39 hostname spamd[xxxx]: spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs Nov 24 15:45:16 hostname spamd[xxxx]: spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs $ tail -f /var/log/mail.log | grep spamd ... Nov 27 16:08:09 hostname spamd[971]: spamd: connection from localhost [127.0.0.1]:36058 to port 783, fd 5 Nov 27 16:08:09 hostname spamd[971]: spamd: creating default_prefs: /home/user/.spamassassin/user_prefs Nov 27 16:08:09 hostname spamd[971]: config: cannot create user preferences file /home/user/.spamassassin/user_prefs: Отказано в доступе Nov 27 16:08:09 hostname spamd[971]: spamd: failed to create readable default_prefs: /home/user/.spamassassin/user_prefs Nov 27 16:08:09 hostname spamd[971]: spamd: checking message <E1a2Hs4-0006rg-Nl@smtp1673.emltwo.com> for user:121 Nov 27 16:08:11 hostname spamd[971]: spamd: clean message (1.8/3.0) for user:121 in 1.5 seconds, 25271 bytes. Nov 27 16:08:11 hostname spamd[971]: spamd: result: . 1 - HTML_MESSAGE,SPF_PASS,T_DKIM_INVALID,URIBL_BLACK scantime=1.5,size=25271,user=user,uid=121,required_score=3.0,rhost=localhost,raddr=127.0.0.1,rport=36058,mid=<E1a2Hs4-0006rg-Nl@smtp1673.emltwo.com>,autolearn=no autolearn_force=no Nov 27 16:08:11 hostname spamd[884]: prefork: child states: II
Решение - просто создайте файл user_prefs в каталоге /home/user/.spamassassin: touch /home/user/.spamassassin/user_prefs
Лог безошибочной работы SpamAssassin:
Nov 27 19:11:56 hostname spamd[971]: spamd: connection from localhost [127.0.0.1]:37142 to port 783, fd 5 Nov 27 19:11:56 hostname spamd[971]: spamd: checking message <5010f37d61ddcc0574c4ac6e389a8d5a@olx.ua> for user:121 Nov 27 19:11:57 hostname spamd[971]: spamd: identified spam (4.1/3.0) for user:121 in 1.0 seconds, 11102 bytes. Nov 27 19:11:57 hostname spamd[971]: spamd: result: Y 4 - HTML_MESSAGE,MIME_HTML_ONLY,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,RDNS_NONE,SPF_PASS,SUBJ_ALL_CAPS,T_DKIM_INVALID,UPPERCASE_50_75 scantime=1.0,size=11102,user=user,uid=121,required_score=3.0,rhost=localhost,raddr=127.0.0.1,rport=37142,mid=<5010f37d61ddcc0574c4ac6e389a8d5a@olx.ua>,autolearn=no autolearn_force=no Nov 27 19:11:57 hostname spamd[884]: prefork: child states: II
В файле пользовательском конфигурационном файле /home/user/.spamassassin/user_prefs мы можем переопределить некоторые переменные конфигурации SpamAssassin из мастер-файла /etc/spamassassin/local.cf
В конфигурационном файле /home/user/.spamassassin/user_prefs могут использоваться директивы перечисленные в разделе USER PREFERENCES конфигурации SpamAssassin, например:
# Set the threshold at which a message is considered spam (default: 5.0) required_score 3.0 # Add *****SPAM***** to the Subject header of spam e-mails rewrite_header Subject *****SPAM***** # Save spam messages as a message/rfc822 MIME attachment instead of # modifying the original message (0: off, 2: use text/plain instead) report_safe 1 # Use Bayesian classifier (default: 1) use_bayes 1 # Bayesian classifier auto-learning (default: 1) bayes_auto_learn 1 # Set headers which may provide inappropriate cues to the Bayesian # classifier bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status bayes_ignore_header X-Yandex-Spam bayes_ignore_header X-Spam # Used to specify addresses which send mail that is often tagged # (incorrectly) as spam. whitelist_from *.remoteshaman.com *github.com # Used to specify addresses which send mail that is often tagged # (incorrectly) as non-spam blacklist_from *@spammer.com *spammer.net *webmail.mobilluck.net *inline.ua *maillist.ru