Objectivo
Estabelecer um limite à capacidade de armazenamento de e-mails no servidor IMAP.
Dada a especificidade do nosso servidor, o sistema de quotas será implementado tendo em atenção o seguinte:
- Como o nosso servidor apenas disponibiliza o protocolo imap, apenas será implementado o sistema de quotas associado a este protocolo. No entanto, o dovecot também suporta quotas no protocolo pop3.
- A limitação da quota terá como base o espaço em disco. No entanto, o sistema de quotas no dovecot aceita como limites uma quantidade de mensagens.
- A limitação aplica-se a todos os utilizadores por igual, embora o dovecot suporte definição de quotas por utilizador.
Configuração
- NOTA:
- Esta configuração é válida para a versão Dovecot 1.0.rc15 do Debian Etch (a versão estável do debian, na qual se baseia este manual). A partir da versão 1.1 do Dovecot, a configuração poderá ser diferente. Para mais informações, consultar: Dovecot Wiki: Dovecot v1.1 quota.
A implementação do sistema de quotas no dovecot é feita por plugins. Basta activar esse plugins e configurar as suas opções. São necessários 2 plugins:
- quota: implementa todo o sistema de gestão de quotas;
- imap_quota: usado para reportar informações sobre as quotas, usando o protocolo imap.
Toda a configuração é efectuada no ficheiro de configuração /etc/dovecot/dovecot.conf:
# [...]
protocol imap {
# Login executable location.
#login_executable = /usr/lib/dovecot/imap-login
# IMAP executable location. Changing this allows you to execute other
# binaries before the imap process is executed.
#
# This would write rawlogs into ~/dovecot.rawlog/ directory:
# mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
#
# This would attach gdb into the imap process and write backtraces into
# /tmp/gdbhelper.* files:
# mail_executable = /usr/libexec/dovecot/gdbhelper /usr/libexec/dovecot/imap
#
#mail_executable = /usr/lib/dovecot/imap
# Maximum IMAP command line length in bytes. Some clients generate very long
# command lines with huge mailboxes, so you may need to raise this if you get
# "Too long argument" or "IMAP command line too large" errors often.
#imap_max_line_length = 65536
# Support for dynamically loadable plugins. mail_plugins is a space separated
# list of plugins to load.
mail_plugins = quota imap_quota
#mail_plugin_dir = /usr/lib/dovecot/modules/imap
# [...]
Em seguida são definidos os valores da quota em Kb, também em /etc/dovecot/dovecot.conf:
# [...]
##
## Plugin settings
##
plugin {
# Here you can give some extra environment variables to mail processes.
# This is mostly meant for passing parameters to plugins. %variable
# expansion is done for all values.
# Quota plugin. Multiple backends are supported:
# dirsize: Find and sum all the files found from mail directory
# dict: Keep quota stored in dictionary (eg. SQL)
# maildir: Maildir++ quota
# fs: Read-only support for filesystem quota
quota = maildir:storage=20480
# [...]
Neste exemplo é imposto um limite de 20Mb (20480Kb) de armazenamento a cada utilizador.
Finalmente, reiniciar o servidor:
server:~# /etc/init.d/dovecot restart
Verificação
Verificar que o serviço IMAP suporta quotas:
server:~# telnet 127.0.0.1 imap
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK Dovecot ready.
a001 login fribeiro password
a001 OK Logged in.
a002 capability
* CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS QUOTA
a002 OK Capability completed.
a003 logout
* BYE Logging out
a003 OK Logout completed.
Connection closed by foreign host.
A resposta ao comando capability deverá assinalar que o serviço suporta quotas.
Clientes
A maior parte dos clientes e-mail actuais podem fornecer ao utilizador informações sobre quotas. No caso do thunderbird, esse suporte é fornecido por add-ons, bastando fazer uma pesquisa por "quotas" no sítio https://addons.mozilla.org/thunderbird.
Após instalação, é possível obter informações acerca do estado da caixa de correio em relação ao limite imposto pelas quotas:
- NOTA:
- Em muitos clientes, apagar um e-mail implica uma cópia para a pasta "Trash" antes de apagar o original. Se a cota já tiver sido ultrapassada, esta operação poderá ser negada com um erro "Quota Excedida". Neste caso, a mensagem deve ser apagada directamente, e não enviada para o "Trash". No thunderbird, as teclas Shift + Del permitem apagar uma mensagem sem a enviar para o "Trash".
Links relacionados
- Quota - Dovecot Wiki (http://wiki.dovecot.org/Quota)
- Thunderbird Addons: Display Quota: (https://addons.mozilla.org/thunderbird/search?q=quota)




















