Volver a Protocolo IMAP

Quotas

Objetivo

Establecer un límite a la capacidad de almacenamiento de e-mails en el servidor IMAP.

A partir de las especificaciones de nuestro servidor, el sistema de cuotas será implementado teniendo el cuenta lo siguiente:

  • Como nuestro servidor sólo dispone del protocolo imap, sólo debe activarse el sistema de cuotas asociado a este protocolo. Sin embargo, dovecot también soporta cuotas en el protocolo pop3.
  • El límite de la cuota tendrá como base el espacio disponible en el disco. Sin embargo, el sistema de cuotas de dovecot acepta como límites una cantidad de mensajes.
  • La limitación se aplica a todos los usuarios por igual, aunque dovecot soporta la definición de cuotas por usuario.

Configuración

El sistema de cuotas en dovecot se realiza con plugins. Basta con activar esos plugins y configurar sus opciones.

Son necesarios 2 plugins:

  • quota: se encarga de todo el sistema de gestión de cuotas;
  • imap_quota: reporta información sobre las cuotas, usando el protocolo imap.

Toda la configuración se efectúa en el archivo de configuración/etc/dovecot/local.conf:

/etc/dovecot/local.conf
# [...]

# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
mail_plugins = $mail_plugins quota


##
## IMAP specific settings
##

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

# [...]

En seguida, debe definirse el tipo y los valores de la cuota. En este ejemplo es impuesto un límite de 10Gb de almacenamiento en el maildir de cada usuario.

La configuración también está almacenada en /etc/dovecot/dovecot.conf.

/etc/dovecot/local.conf
# [...]

##
## Plugin settings
##

# All wanted plugins must be listed in mail_plugins setting before any of the
# settings take effect. See <doc/wiki/Plugins.txt> for list of plugins and
# their configuration. Note that %variable expansion is done for all values.

plugin {
  #setting_name = value
  quota = maildir
  quota_rule = *:storage=10G
}

# [...]

Reiniciar el servidor:

root@server:~# service dovecot restart

Verificación

Verificar que el servicio IMAP soporta las cuotas:

root@server:~# telnet 127.0.0.1 imap
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
a001 login fribeiro password
a001 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE QUOTA] Logged in
a002 logout
* BYE Logging out
a002 OK Logout completed.
Connection closed by foreign host.

La respuesta al comandocapability debe mostrar que el servicio soporta las cuotas.

Clientes

La mayor parte de los clientes de e-mail actuales pueden proveerle al usuario informaciones sobre cuotas. En el caso de thunderbird, este soporte está proveído por add-ons, Para esto, debe buscar: “quotas” en el sitio https://addons.mozilla.org/thunderbird.

Después de la instalación, es posible obtener otras informaciones acerca del estado del buzón de correo con relación al límite impuesto por las cuotas:

AtenciónEn muchos clientes, borrar un e-mail implica una copia en la carpeta “Trash” y no borrar el original. Si la cota ya haya sido superada, esta operación podrá ser negada con un error “Cuota Excedida”. En este caso, el mensaje debe ser borrado directamente sin la copia en “Trash”. En el thunderbird, las teclas Shift + Del permiten borrar un mensaje sin enviarlo al “Trash”.

Referencias