{"id":658,"date":"2019-10-24T17:06:37","date_gmt":"2019-10-24T15:06:37","guid":{"rendered":"https:\/\/www.tiraquelibras.com\/blog\/?p=658"},"modified":"2021-02-02T11:09:54","modified_gmt":"2021-02-02T10:09:54","slug":"servidor-de-correo-email-quota-parte-8-15","status":"publish","type":"post","link":"https:\/\/blog.tiraquelibras.com\/?p=658","title":{"rendered":"Servidor de correo &#8211; Email Quota (parte 8)"},"content":{"rendered":"<p>Esta es una entrada dentro de la serie para la instalaci\u00f3n de un servidor de correo completo. \u00cdndice completo de contenidos pincha <a href=\"https:\/\/blog.tiraquelibras.com\/?p=601\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a>.<\/p>\n<hr \/>\n<p>En la presente entrada vamos a configurar las <strong>Quotas<\/strong> del buz\u00f3n, es decir el tama\u00f1o de uso permitido por buz\u00f3n, tanto para <strong>Postfix<\/strong> como <strong>Dovecot<\/strong>.<\/p>\n<hr \/>\n<h1>Configurar Dovecot Quota<\/h1>\n<p>Editamos el archivo <strong><em>\/etc\/dovecot\/doveco.conf<\/em><\/strong> y agregamos las siguientes l\u00edneas al final:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Quota para POSTFIX\r\nservice quota-status {\r\n    executable = quota-status -p postfix\r\n    inet_listener {\r\n        port = 12340\r\n        # You can choose any port you want\r\n    }\r\n    client_limit = 1\r\n}\r\n<\/pre>\n<p>Con esto indicamos que en el puerto 12340 se va a poder consultar el estado de la cuota de un buz\u00f3n, por ejemplo desde Postfix.<\/p>\n<p>Reiniciamos Dovecot con:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">systemctl restart dovecot<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h1>Dovecot<\/h1>\n<p>Vamos a configurar una <em><strong>Quota<\/strong><\/em> global para todos los buzones. Lo suyo ser\u00eda configurarlo en el <em><strong>backend MySQL,\u00a0<\/strong><\/em>pero no fui capaz de que funcionara.<\/p>\n<p>Tenemos que habilitar tres plugins de Dovecot:<\/p>\n<ul>\n<li><em><strong>Quota<\/strong><\/em>: implementa la quota actual configurada.<\/li>\n<li><em><strong>Imap_quota<\/strong><\/em>: para reportar la quota v\u00eda IMAP.<\/li>\n<li><em><strong>Quota_grace<\/strong><\/em>: determina cu\u00e1nto se puede superar el l\u00edmite cuando es superado.<\/li>\n<\/ul>\n<p>Archivo <strong><em>\/etc\/dovecot\/conf.d\/10-mail.conf<\/em><\/strong>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Space separated list of plugins to load for all services. Plugins specific to\r\n# IMAP, LDA, etc. are added to this list in their own .conf files.\r\nmail_plugins = $mail_plugins quota\r\n<\/pre>\n<p>Archivo <strong><em>\/etc\/dovecot\/conf.d\/20-imap.conf,\u00a0<\/em><\/strong>agregando los plugins <em><strong>quota\u00a0<\/strong><\/em>e\u00a0<em><strong>imap_quota<\/strong><\/em><em>:<\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">protocol imap {\r\n  # Space separated list of plugins to load (default is global mail_plugins).\r\n  mail_plugins = $mail_plugins imap_quota quota mail_log notify\r\n\u2026\r\n}\r\n<\/pre>\n<p>Archivo <strong><em>\/etc\/dovecot\/conf.d\/90-quota.conf<\/em><\/strong> para configurar las quotas de los buzones y el mensaje de alerta seg\u00fan los porcentajes configurados:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">plugin {\r\n\r\n  quota = maildir:User quota\r\n  quota_rule = *:storage=10G\r\n  quota_rule2 = Trash:storage=+100M\r\n  quota_rule3 = SPAM:storage=+100M\r\n  quota_grace = 10%%\r\n  quota_status_success = DUNNO\r\n  quota_status_nouser = DUNNO\r\n  quota_status_overquota = \"552 5.2.2 Mailbox is full\"\r\n  quota_warning = storage=95%% quota-warning 95 %u\r\n  quota_warning2 = storage=80%% quota-warning 80 %u\t\r\n\r\n  quota_exceeded_message = You have exceded the m\u00e1ximum size of your mailbox. Please, free up space.\r\n}\r\n\r\nservice quota-warning {\r\n  executable = script \/usr\/local\/scripts\/quota-warning.sh\r\n  user = vmail\r\n  unix_listener quota-warning {\r\n    user = vmail\r\n  }\r\n}\r\n<\/pre>\n<p>Y adem\u00e1s lo agregamos al servicio Pop <strong><em>\/etc\/dovecot\/conf.d\/20-pop3.conf:<\/em><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\u2026\r\nprotocol pop3 {\r\n  # Space separated list of plugins to load (default is global mail_plugins).\r\n  mail_plugins = $mail_plugins quota mail_log notify\r\n\u2026\r\n}\r\n<\/pre>\n<p>Ahora el archivo de BASH que contiene el script para el <strong><em>quota-warning<\/em><\/strong> indicado antes <strong><em>\/usr\/local\/scripts\/quota-warning.sh<\/em><\/strong> contiene lo siguiente, recuerda actualizar la cuenta <em><strong>From <\/strong><\/em>por la que consideres oportuna:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">#!\/bin\/sh\r\nPERCENT=$1\r\nUSER=$2\r\n\r\ncat &lt;&lt; EOF | \/usr\/lib\/dovecot\/dovecot-lda -d $USER -o \"plugin\/quota=count:User quota:noenforcing\"\r\nFrom: email@email.com\r\nTo: $USER\r\nSubject: Alerta de espacio en buzon\r\n\r\nSu buzon de correo esto al $PERCENT% de su capacidad.\r\nReciba un cordial saludo.\r\nSu equipo de soporte de Yeloquehay.\r\nEOF \r\n<\/pre>\n<p>Reiniciamos dovecot con:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">systemctl restart dovecot<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h1>Postfix<\/h1>\n<p>Ahora editamos el archivo de Postfix <strong><em>\/etc\/postfix\/main.cf<\/em><\/strong> para indicarle donde chequear el estado de almacenamiento de un buz\u00f3n, en el grupo <strong><em>smtpd_recipient_restrictions<\/em><\/strong>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">smtpd_recipient_restrictions =\r\n    ...\r\n    check_policy_service inet:127.0.0.1:12340\r\n<\/pre>\n<p>Reiniciamos Postfix con:<\/p>\n<p><strong><em>systemctl restart postfix<\/em><\/strong><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>\u00cdndice general pincha <a href=\"https:\/\/blog.tiraquelibras.com\/?p=601\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta es una entrada dentro de la serie para la instalaci\u00f3n de un servidor de correo completo. \u00cdndice completo de contenidos pincha aqu\u00ed. En la<span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/blog.tiraquelibras.com\/?p=658\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":640,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,22],"tags":[69,72,73],"class_list":["post-658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sistemas","category-ti","tag-dovecot","tag-quota","tag-size"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=658"}],"version-history":[{"count":0,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/media\/640"}],"wp:attachment":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}