Решето голубятни не работает?

Я довольно плохо знаком с Голубятней, но она удалась для меня довольно хороший до сих пор для меня. Я выполняю голубятню с постфиксом и amavis и spamassassin, и это разрабатывает весь штраф, письма отмечены как спам, отправка, получение, весь штраф.

Теперь я хотел добавить плагин решета, таким образом, письма перемещены в сервер, и это не удается. Я хотел запуститься с общего сценария, перемещающего спам в папку спама, но этого не происходит.

Таким образом, я искал сеть и нашел поиск и устранение неисправностей, который сказал, что решето propably не работает. Мне не удалось найти любые записи в журнале сделанными решетом, таким образом, это могло быть проблемой. Здесь я нашел, что необходимо поместить решето в протоколы, я предполагаю в dovecot.conf.

Я попробовал, и голубятня больше не начинала отправлять unkown протокол: решето. Я добавил lmtp к протоколам, поскольку я хочу использовать его, и он был отправлен в другом потоке, но я получил ошибку: сервис (lmtp) accces перестал работать: никакой такой файл или каталог.

Некоторая система infos:
ОС: Debian 7
Версия голубятни: 2.1.7

Файлы конфигурации: dovecot.conf (уменьшенный на изменился/добавил),

protocols = imap pop3

plugin {
    sieve_before = /var/vmail/sieve/spam-global.sieve
    sieve_dir = /var/vmail/%d/%n/sieve/scripts/
    sieve = /var/vmail/%d/%n/sieve/active-script.sieve
}

conf.d/20-lmtp.conf (создал его),

protocol lmtp {  
    # Space separated list of plugins to load (default is global mail_plugins).  
    mail_plugins = $mail_plugins sieve  
}  

спам-global.sieve

require "fileinto";  
if header :contains "X-Spam-Flag" "YES" {  
    fileinto "Spam";  
}  

Как я могу проверить, работает ли решето?

Постфикс Afaik должен быть настроен для работы с решетом. Я не уверен, что сделал это до сих пор, но, пока привычка решета работает, та привычка решают проблемное право?

Спасибо за любую Недопустимую справку

2
задан 12 August 2015 в 10:12
1 ответ

Вы говорите, что вам нужно было создать файл?

Похоже, вы никогда не устанавливали плагин протокола в dovecot.

  1. Во-первых, НЕ редактируйте (и не создавайте)установленные файлы conf , когда их можно избежать. Сделать свой собственный. Создайте /etc/dovecot/local.cf ИЛИ /etc/dovecot/conf.d/99-custom.conf (например).

  2. В более новых версиях дистрибутива Dovecot подключаемый модуль LDA ( 15-lda.conf ) устанавливается по умолчанию, но не подключаемый модуль LMTP ( 20-lmtp.conf ). Вы можете использовать плагин LDA. (Агент местной доставки).

  3. Если вы все еще хотите использовать LMTP, вам необходимо установить надстройку: sudo apt install dovecot-lmtpd . Если бы вы это сделали, вам не нужно было бы создавать для него файл .conf .

Соответствующие области Sieve моего /etc/dovecot/local.cf :

protocol imap {

  mail_plugins = autocreate
}
plugin {
   autocreate = Spam
   autosubscribe = Spam
}

# SIEVE STUFF
# Include already included protocols and sieve:
protocols = $protocols sieve

# Allow sieve to be run out of LDA plugin/protocol:
protocol lda {
  mail_plugins = $mail_plugins sieve
}

# Sieve plugin settings
plugin {
   sieve = file:~/sieve;active=~/.dovecot.sieve
   sieve_default = /usr/local/lib/dovecot/sieve/default.sieve
   sieve_global = /usr/local/lib/dovecot/sieve/
}

# May not need this, but it doesn't hurt:
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}

Соответствующие области Sieve моего /etc/postfix/main.cf (с использованием dovecot lda / delivery):

mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

My default.sieve :

require ["envelope", "fileinto", "mailbox", "subaddress"];

if header :contains "X-Spam-Flag" "YES" {
        fileinto :create "Spam";
}
if header :contains "X-Amavis-Alert" "BAD HEADER SECTION" {
        fileinto :create "Spam";
}
if address :domain "From" "mydomain.net" {
   if not envelope :domain "From" "mydomain.net" {
      fileinto "Spam";
      stop;
   }
}
if address :domain "From" "mydomain.com" {
   if not envelope :domain "From" "mydomain.com" {
      fileinto "Spam";
      stop;
   }
}

Соответствующая область из /etc/amavis/conf.d/50-user (или создайте свой: 99-custom ):

@local_domains_acl  = ( [ ".$mydomain", '.mydomain.net', '.mydomain.com' ] );
@local_domains_maps = ( [ ".$mydomain", '.mydomain.net', '.mydomain.com' ] );
# Do not quarantine or trash emails - hand off to LDA instead
$final_spam_destiny=D_PASS;
$final_virus_destiny=D_PASS;
$final_bad_header_destiny=D_PASS;
@addr_extension_spam_maps=('Spam');

Перезапустите Dovecot и проверьте порт:

# sudo systemctl restart dovecot
# telnet 10.10.10.100 4190
Trying 10.10.10.100...
Connected to 10.10.10.100.
Escape character is '^]'.
"IMPLEMENTATION" "Dovecot (Ubuntu) Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext"
"NOTIFY" "mailto"
"SASL" "PLAIN"
"STARTTLS"
"VERSION" "1.0"
OK "Dovecot (Ubuntu) ready."

Отладка Dovecot вывод - видно, как он работает:

2019-05-16 15:29:49 lda(emailuser1): Debug: Loading modules from directory: /usr/lib/dovecot/modules
2019-05-16 15:29:49 lda(emailuser1): Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
2019-05-16 15:29:49 lda(emailuser1): Debug: Effective uid=1000, gid=1000, home=/home/emailuser1
2019-05-16 15:29:49 lda(emailuser1): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/emailuser1/Maildir
2019-05-16 15:29:49 lda(emailuser1): Debug: maildir++: root=/home/emailuser1/Maildir, index=, indexpvt=, control=, inbox=/home/emailuser1/Maildir, alt=
2019-05-16 15:29:49 lda(emailuser1): Debug: userdb lookup skipped, username taken from USER environment
2019-05-16 15:29:49 lda(emailuser1): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
2019-05-16 15:29:49 lda(emailuser1): Debug: Destination address: emailuser1@mydomain.net (source: -a parameter)
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: Pigeonhole version 0.4.21 (92477967) initializing
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: file storage: Storage path `/home/emailuser1/sieve' not found
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: file storage: Storage path `/home/emailuser1/.dovecot.sieve' not found
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: storage: Trying default script location `/usr/local/lib/dovecot/sieve/default.sieve'
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: file storage: Using Sieve script path: /usr/local/lib/dovecot/sieve/default.sieve
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: file script: Opened script `default' from `/usr/local/lib/dovecot/sieve/default.sieve'
2019-05-16 15:29:49 lda(emailuser1): Debug: sieve: Using the following location for user's Sieve script: /usr/local/lib/dovecot/sieve/default.sieve

Сито теперь работает. Ответ на ваш вопрос.

Насколько я мог что-то упустить - все настройки могут отличаться. Пожалуйста, просмотрите несколько статей, если вы все еще застряли. Мои глобальные правила сита хранят карантин в папках «Спам» для каждого пользователя (пользователи не являются виртуальными). Как уже указывалось, вам, вероятно, потребуется отредактировать ваш postfix main.cf (и master.cf для виртуальных пользователей / vmail) , как указано здесь , чтобы использовать Dovecot LDA. Вам также, вероятно, потребуется отредактировать свой контент-фильтр (например, amavis-new), как указано. Для этого есть статей .

1
ответ дан 3 December 2019 в 12:45

Теги

Похожие вопросы