Фильтр Roundcube, установленный ManagedSieve, не найден

Вот мой текущий фильтр:

require ["vacation"];
# rule:[Filter Test]
if allof (exists "from")
{
        vacation :days 365 :addresses "newmail@vietfeir.com" :subject "Mailbox disabled" :from "newmail@vietfeir.com" text:
The mailbox dennis@vietfeir.com is no longer active. Please reply to this message and request the new address.

Thank you.

Я заметил, что он сработает один раз, и ответ возвращается на отправитель. На любое последующее электронное письмо не приходит ответ. Если я отправляю сообщение из другого почтового ящика, он получает ответ. Что может вызвать такое поведение?

Итак, я действительно хочу, чтобы автоответ отправлялся каждый время получения сообщения. Roundcube имеет параметр конфигурации под названием "Responses", который, как я предполагал, будет делать это, но он не имеет никакого эффекта. Я написал об этом сообществу Roundcube.

ДРУГОЕ ОБНОВЛЕНИЕ

Это сбивает с толку. После Через несколько часов я решил изменить скрипт. Теперь я снова получаю сообщение «Сито: у пользователя нет активного скрипта в хранилище», что и вызвало эту публикацию изначально.

ОБНОВЛЕНИЕ

В конце концов я закомментировал расположение пользовательского скрипта в /etc/dovecot/conf.d/90-sieve.conf. После этого все фильтры, которые я создаю в Roundcube, работают. правильно.

Итак, какова цель этой спецификации и что используется по умолчанию


Я новичок в ManagedSced. В журнале отладки указано, что у пользователя нет личных скриптов. Я указал расположение пользовательского скрипта как:

sieve = /var/mail/vhosts/%d/%u/sieve/*.sieve

Это не работает. Когда я создаю фильтр с помощью Roundcube, он находится здесь:

/var/mail/vhosts/vietfeir.com/dennis_gray/sieve

Имя файла - roundcube.sieve

Теперь, как мне установить местоположение пользовательского скрипта, чтобы он указывал на него? Мне не удалось определить правильный синтаксис.

У меня есть следующий тестовый сценарий, созданный Roundcube. Его имя - roundcube.sieve:

# rule:[Redirect Test]
if allof (header :contains "subject" "redirect")
{
        redirect "dev@vietfeir.com";
}

Я выполняю отладку и видел в журнале такие сообщения:

Apr 17 10:11:10 lmtp(d0325mgray@vietfeir.com): Debug: 0B58A06ZtlzrbAAAywx1xA: sieve: file storage: Storage path
`/var/mail/vhosts/vietfeir.com/d0325mgray/.dovecot.sieve' not found
Apr 17 10:11:10 lmtp(d0325mgray@vietfeir.com): Debug: 0B58A06ZtlzrbAAAywx1xA: sieve: User has no active script i
n storage `/var/mail/vhosts/vietfeir.com/d0325mgray/sieve'
Apr 17 10:11:10 lmtp(d0325mgray@vietfeir.com): Debug: 0B58A06ZtlzrbAAAywx1xA: sieve: User has no personal script

Созданный мной скрипт Roundcube определенно хранится в пути для пользователя, поэтому я не знаю, почему он сообщает что это не так.

Сценарий before.sieve выполняется без проблем.

Вывод dovecot -n:

# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.15.0-47-generic x86_64 Ubuntu 18.04.2 LTS ext4
auth_mechanisms = plain login
log_path = /var/log/dovecot.log
mail_location = maildir:/var/mail/vhosts/%d/%n/
mail_privileged_group = mail
managesieve_notify_capability = mailto
managesieve_sieve_capability = 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 imapflags notify
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Spam {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
}
passdb {
  args = /etc/dovecot/deny-users
  deny = yes
  driver = passwd-file
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  sieve_before = /var/mail/before.sieve
  sieve_extensions = +notify +imapflags
  sieve_trace_dir = /var/mail
  sieve_trace_level = matching
}
postmaster_address = dev@vietfeir.com
protocols = imap lmtp sieve
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
ssl = required
ssl_cert = </etc/letsencrypt/live/civicrm.vietfeir.com/fullchain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_key =  # hidden, use -P to show it
userdb {
  driver = passwd
}
userdb {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  driver = static
}
protocol lmtp {
  mail_plugins = " sieve sieve"
}
protocol lda {
  mail_plugins = " sieve"
}
0
задан 18 April 2019 в 16:43
1 ответ

Я удовлетворен тем, что теперь понимаю, как эти фильтры работают. Когда я создаю фильтр с помощью Roundcube, он помещает его в

/var/mail/vhosts/[domain]/[user]/sieve/roundtree.sieve

. Затем он создает символическую ссылку на этот файл в

/var/mail/vhosts/[domain]/[user]/.dovecot.sieve

, затем при первом вызове фильтра он компилируется в .dovecot.svbin в том же каталоге. .

Я могу считать это закрытым.

0
ответ дан 5 December 2019 в 03:26

Теги

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