<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Postfix + dovecot и стандартные папки]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=24190</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=24190&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Postfix + dovecot и стандартные папки».]]></description>
		<lastBuildDate>Fri, 07 Sep 2012 13:01:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Postfix + dovecot и стандартные папки]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=297503#p297503</link>
			<description><![CDATA[<p>Появилась задача что бы при настройке почтового клиента создавались стандартные папки<br />- Входящие<br />- Отправленные<br />- Исходящие<br />- удаленные <br />Реализовал это путем добавления отдельных секций в dovecot.conf<br /></p><div class="codebox"><pre><code> protocol imap {
  mail_plugins = autocreate
}
plugin {
  autocreate = INBOX.Sent
  autocreate2 = INBOX.Deleted
  autocreate3 = INBOX.Spam
  autocreate4 = INBOX.Junk Mail
  autosubscribe = INBOX.Sent
  autosubscribe2 = INBOX.Deleted
  autosubscribe3 = INBOX.Spam
  autosubscribe4 = INBOX.Junk Mail
}</code></pre></div><p>Дописал INBOX. т.к. использую префикс INBOX.<br />Создал autocreate_plugin.so в /usr/lib/dovecot/modules/imap с содержимым <br /></p><div class="codebox"><pre><code>/* Copyright (C) 2007 Timo Sirainen, LGPLv2.1 */

/*
   export DOVECOT=~/src/dovecot-1.1.0
   gcc -fPIC -shared -g -Wall -I$DOVECOT -I$DOVECOT/src/lib \
     -I$DOVECOT/src/lib-storage -I$DOVECOT/src/lib-mail \
     -I$DOVECOT/src/lib-imap -DHAVE_CONFIG_H \
     autocreate-plugin.c -o autocreate_plugin.so

   Usage:

   plugin {
     autocreate = Trash
     autocreate2 = Spam
     #autocreate3 = ..etc..
     autosubscribe = Trash
     autosubscribe2 = Spam
     #autosubscribe3 = ..etc..
   }
*/

#include &quot;lib.h&quot;
#include &quot;mail-storage.h&quot;
#include &quot;mail-namespace.h&quot;

#include &lt;stdlib.h&gt;

const char *autocreate_plugin_version = PACKAGE_VERSION;

static void (*autocreate_next_hook_mail_namespaces_created)
   (struct mail_namespace *ns);

static void autocreate_mailboxes(struct mail_namespace *namespaces)
{
   struct mail_namespace *ns;
   char env_name[20];
   const char *name;
   unsigned int i;

   i = 1;
   name = getenv(&quot;AUTOCREATE&quot;);
   while (name != NULL) {
      ns = mail_namespace_find(namespaces, &amp;name);
      if (ns != NULL) {
         (void)mail_storage_mailbox_create(ns-&gt;storage,
                       name, FALSE);
      }

      i_snprintf(env_name, sizeof(env_name), &quot;AUTOCREATE%d&quot;, ++i);
      name = getenv(env_name);
   }
}

static void autosubscribe_mailboxes(struct mail_namespace *namespaces)
{
   struct mail_namespace *ns;
   char env_name[20];
   const char *name;
   unsigned int i;

   i = 1;
   name = getenv(&quot;AUTOSUBSCRIBE&quot;);
   while (name != NULL) {
      ns = mail_namespace_find(namespaces, &amp;name);
      if (ns != NULL)
         (void)mailbox_list_set_subscribed(ns-&gt;list, name, TRUE);

      i_snprintf(env_name, sizeof(env_name), &quot;AUTOSUBSCRIBE%d&quot;, ++i);
      name = getenv(env_name);
   }
}

static void
autocreate_mail_namespaces_created(struct mail_namespace *namespaces)
{
   if (autocreate_next_hook_mail_namespaces_created != NULL)
      autocreate_next_hook_mail_namespaces_created(namespaces);

   autocreate_mailboxes(namespaces);
   autosubscribe_mailboxes(namespaces);
}

void autocreate_plugin_init(void);
void autocreate_plugin_deinit(void);

void autocreate_plugin_init(void)
{
   autocreate_next_hook_mail_namespaces_created =
      hook_mail_namespaces_created;
   hook_mail_namespaces_created = autocreate_mail_namespaces_created;
}

void autocreate_plugin_deinit(void)
{
   hook_mail_namespaces_created =
      autocreate_next_hook_mail_namespaces_created;
} </code></pre></div><p>P. S. Это описал если кому интересно и нужно</p><p>Если прописать<br /></p><div class="codebox"><pre><code>  autocreate = INBOX.Исходящие
  autocreate2 = INBOX.Спам
  autosubscribe = INBOX.Исходящие
  autosubscribe2 = INBOX.Спам</code></pre></div><p>Почтовый клиент выдает иероглифы т.к. dovecot использует кодировку UTF7 </p><p>Вопрос следующий, можно ли dovecot научить использовать UTF8, где можно прописать, возможно ли вообще это?</p>]]></description>
			<author><![CDATA[null@example.com (kom-pik)]]></author>
			<pubDate>Fri, 07 Sep 2012 13:01:32 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=297503#p297503</guid>
		</item>
	</channel>
</rss>
