The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"dovecot2 + quota-warning"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Другая система)
Изначальное сообщение [ Отслеживать ]

"dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 02-Ноя-12, 09:40 
Система:  red hat 6+postfix+dovecot2+mysql
Возник вопрос  по quota-warning,  квоты работают, но не приходят письма с предупреждениями, вот скрипт:
#!/bin/sh
PERCENT=$1
USER=$2
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota::noenforcing"
From: postmaster@scnipigaz.ru
Subject: quota warning
Your mailbox is now $PERCENT% full.
EOF
В логах нашел ошибку:  execvp(/usr/local/bin/quota-warning.sh) failed: Permission denied
Начал проверять скрипт, вот результат:
Usage: dovecot-lda [-c <config file>] [-a <address>] [-d <username>] [-p <path>]
                   [-f <envelope sender>] [-m <mailbox>] [-e] [-k]
lda(): Fatal: Unknown argument: plugin/quota=maildir:User quota::noenforcing
Нашел,  что проблема решается удалением параметра User quota, и то что параметр –о,  хоть и его нет в описании должен работать, переделал:
"plugin/quota=maildir::noenforcing"
но у меня так и осталась эта ошибка.
Прошу вашей помощи, так как не могу понять причину сбоя, конфиг dovecot:
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = PLAIN LOGIN
auth_verbose = yes
base_dir = /var/run/dovecot/
first_valid_uid = 1000
last_valid_uid = 1000
log_timestamp = %Y-%m-%d %H:%M:%
mail_location = maildir:/home/vmail/%d/%u
mbox_write_locks = fcntl
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
passdb {
  driver = pam
}
protocols = imap pop3
protocol imap {
  mail_plugins = $mail_plugins quota imap_quota autocreate
  imap_client_workarounds = tb-extra-mailbox-sep
}
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-master {
    group = mail
    mode = 0660
    user = vmail
  }
  unix_listener auth-userdb {
  group = mail
  mode = 0660
  user = vmail
  }
  #user = nobody
}
service imap-login {
  inet_listener imap {
    port = 143
  }
}
service imap {
  executable = /usr/libexec/dovecot/imap
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
}
service pop3 {
  executable = /usr/libexec/dovecot/pop3
}
disable_plaintext_auth = no
ssl = no
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
#ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  args = uid=1000 gid=12 home=/home/vmail/%d/%u
  driver = static
}
userdb {
  driver = passwd
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  postmaster_address = postmaster@scnipigaz.ru
  sendmail_path = /usr/lib/sendmail
  mail_plugins = quota
}
plugin {
  autocreate = INBOX
#  autocreate2 = Sent
#  autocreate3 = Trash
#  autocreate4 = Drafts
#  autocreate5 = Junk
#  autocreate6 = Spam
  autosubscribe = INBOX
#  autosubscribe2 = Sent
#  autosubscribe3 = Trash
#  autosubscribe4 = Drafts
#  autosubscribe5 = Junk
#  autosubscribe6 = Spam
  
  quota = maildir:User quota
  quota_rule = *:storage=500M
  quota_rule2 = Trash:storage=+20%%
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning = storage=80%% quota-warning 80 %u
  quota_warning3 = -storage=100%% quota-warning below %u # user is no longer over quota
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
  group = mail
  user = vmail
  mode = 0660
  }
  user = vmail
}
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "dovecot2 + quota-warning"  +/
Сообщение от DeadLoco (ok) on 03-Ноя-12, 04:16 
Есть мнение, что в скрипте очень полезно отделять хедеры письма от собсно тела пустой строкой, согласно РФЦ.
Также, крайне богоугодно в шелловых и прочих скриптах последней строкой ставить комментарий, ибо тот же ЕОФ шеллом распознается именно, как ЕОФ только в виде ЕОФ\н.

Я уж не говорю о массе помарок, грамматических и синтаксических ошибок в вашей копипасте, вроде некорректной нумерации квота_рулезов и двух двоеточий вместо одного перед ноэнфорсингом.

#!/bin/sh
PERCENT=$1
USER=$2
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing"
From: postmaster@scnipigaz.ru
To: $USER
Subject: quota warning

Your mailbox is now $PERCENT% full.
EOF
#аминь


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 06-Ноя-12, 08:05 
>[оверквотинг удален]
> PERCENT=$1
> USER=$2
> cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User
> quota:noenforcing"
> From: postmaster@scnipigaz.ru
> To: $USER
> Subject: quota warning
> Your mailbox is now $PERCENT% full.
> EOF
> #аминь

исправил как вы сказали, все равно ошибка:
lda(): Fatal: Unknown argument: plugin/quota=maildir:User quota:noenforcing

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "dovecot2 + quota-warning"  +/
Сообщение от DeadLoco (ok) on 06-Ноя-12, 12:53 
> исправил как вы сказали, все равно ошибка:

Бросьте сюда все, что выдаст `doveconf -n`

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 06-Ноя-12, 13:02 
>> исправил как вы сказали, все равно ошибка:
> Бросьте сюда все, что выдаст `doveconf -n`

auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = PLAIN LOGIN
auth_verbose = yes
base_dir = /var/run/dovecot/
disable_plaintext_auth = no
first_valid_uid = 1000
last_valid_uid = 1000
log_timestamp = %Y-%m-%d %H:%M:%
mail_location = maildir:/home/vmail/%d/%u
mbox_write_locks = fcntl
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
passdb {
  driver = pam
}
plugin {
  autocreate = INBOX
  autosubscribe = INBOX
  quota = maildir:User quota
  quota_rule = *:storage=500M
  quota_rule2 = Trash:storage=+20%%
  quota_warning = storage=80%% quota-warning 80 %u
  quota_warning2 = -storage=100%% quota-warning below %u
}
protocols = imap pop3
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-master {
    group = mail
    mode = 0660
    user = vmail
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0660
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
}
service imap {
  executable = /usr/libexec/dovecot/imap
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
}
service pop3 {
  executable = /usr/libexec/dovecot/pop3
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
    user = vmail
  }
}
ssl = no
userdb {
  args = uid=1000 gid=12 home=/home/vmail/%d/%u
  driver = static
}
userdb {
  driver = passwd
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  mail_plugins = " quota imap_quota autocreate"
}
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  mail_plugins = quota
  postmaster_address = postmaster@domain
  sendmail_path = /usr/lib/sendmail
}

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "dovecot2 + quota-warning"  +/
Сообщение от DeadLoco (ok) on 06-Ноя-12, 14:10 
>[оверквотинг удален]
> auth_debug_passwords = yes
> auth_mechanisms = PLAIN LOGIN
> auth_verbose = yes
> base_dir = /var/run/dovecot/
> disable_plaintext_auth = no
> first_valid_uid = 1000
> last_valid_uid = 1000
> log_timestamp = %Y-%m-%d %H:%M:%
> mail_location = maildir:/home/vmail/%d/%u
> mbox_write_locks = fcntl

К моему великому сожалению, увы, но вам, все-таки, придется добавить строчку `mail_plugins = quota` в ваш конфиг. Примерно похожий эффект наблюдается у электрочайников - их пока в розетку не включишь, они практически не греют воду. Точно так же и здесь, пока явно не укажешь загрузку плагина, все обращения к lib10_quota_plugin.so вылетают с ошибками.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 06-Ноя-12, 14:44 
>[оверквотинг удален]
>> first_valid_uid = 1000
>> last_valid_uid = 1000
>> log_timestamp = %Y-%m-%d %H:%M:%
>> mail_location = maildir:/home/vmail/%d/%u
>> mbox_write_locks = fcntl
> К моему великому сожалению, увы, но вам, все-таки, придется добавить строчку `mail_plugins
> = quota` в ваш конфиг. Примерно похожий эффект наблюдается у электрочайников
> - их пока в розетку не включишь, они практически не греют
> воду. Точно так же и здесь, пока явно не укажешь загрузку
> плагина, все обращения к lib10_quota_plugin.so вылетают с ошибками.

Добавил не работает, блин, забыл еще написать что система х64, может в этом проблема?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "dovecot2 + quota-warning"  +/
Сообщение от DeadLoco (ok) on 06-Ноя-12, 15:00 
> Добавил не работает

покажите снова `doveconf -n`

>блин, забыл еще написать что система х64, может в этом проблема?

А у вас система не на электричестве работает, случаем? А то подобные глюки, как правило, встречаются у систем, втыкнутых в розетку.


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "dovecot2 + quota-warning"  +/
Сообщение от PavelR (ok) on 06-Ноя-12, 15:08 
> Добавил не работает, блин, забыл еще написать что система х64, может в
> этом проблема?

Скорее всего. Вы еще с 32битными не разобрались, а уже 32битные ставите. =)


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 06-Ноя-12, 15:24 
>> Добавил не работает, блин, забыл еще написать что система х64, может в
>> этом проблема?
> Скорее всего. Вы еще с 32битными не разобрались, а уже 32битные ставите.
> =)

я к тому это написал, что может в конфиге указать опцию mail_plugin_dir?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "dovecot2 + quota-warning"  +/
Сообщение от Роман (??) on 06-Ноя-12, 16:28 
Разобпался, права на сокет 0777 и все заработало:

service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
  mode = 0777
  user = vmail
  }

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "dovecot2 + quota-warning"  +/
Сообщение от DeadLoco (ok) on 08-Ноя-12, 19:19 
> service quota-warning {
>   executable = script /usr/local/bin/quota-warning.sh
>   unix_listener quota-warning {
>   mode = 0777
>   user = vmail
>   }

Мнээ... Не советую... Съедят...

mail_uid                = vmail
mail_gid                = vmail
. . . . .
service quota-warning {
  executable    = script /usr/local/bin/quota-warning.sh
  user          = $mail_uid
  group         = $mail_gid
  unix_listener quota-warning {
    user        = $mail_uid
    group       = $mail_gid
  }
}

Ну, или какая у вас там группа для почты.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру