Решено: скелет maildir
Модераторы: SLEDopit, Модераторы разделов
-
Chebyrashka
- Сообщения: 21
Решено: скелет maildir
Проблема такая, стоит связка postfix+dovecot+mysql+postfixadmin, при создании ящика в нем создаються 3 папки cur, new, tmp. Надо сделать так чтобы еще создавалась папка .Spam, как это сделать? я немогу найти скрипт который генерит эти папки (( когда я логинюсь на ящик через squirrelmail или TB они сами еще создают дополнительные папки, но их править это невариант, ибо тогда надо будет чтобы каждый хоть раз через них заходил...
-
mandreika
- Сообщения: 217
- ОС: Debian 3,4,5,6
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
в смысле как? захожу в постфикс админ и завожу 
у меня авторизация через мускул, пользователи которых я создаю виртуальные, и им создается такой скелет
у меня авторизация через мускул, пользователи которых я создаю виртуальные, и им создается такой скелет
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
скорее даже немного не так, мне не надо менять скелет maildir, а просто надо чтобы при создании ящика в нем создавалась папка .Spam
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
у меня появилась догадка... можно сделать такой скрипт
#!/bin/bash
maildirmake.dovecot .Spam
он будет создавать нужную папку и надо прописать его выполнение я думаю где то в постфикс админе, в файле который создает пользователя... токо как это сделать? он написан на пхп, а с ним я не общался никогда...
#!/bin/bash
maildirmake.dovecot .Spam
он будет создавать нужную папку и надо прописать его выполнение я думаю где то в постфикс админе, в файле который создает пользователя... токо как это сделать? он написан на пхп, а с ним я не общался никогда...
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
Во! я нашел в постфикс админе опции по созданию папок дополнительный в config.inc.php
$CONF['create_mailbox_subdirs']=array('Spam');
$CONF['create_mailbox_subdirs_host']='localhost';
Токо вот при создании потом пользователя он мне пишет такое....
Сообщение отправлено!
Почтовый ящик был успешно создан, но в нем не удалось создать (некоторые) стандартные папки
Где косяк ?
$CONF['create_mailbox_subdirs']=array('Spam');
$CONF['create_mailbox_subdirs_host']='localhost';
Токо вот при создании потом пользователя он мне пишет такое....
Сообщение отправлено!
Почтовый ящик был успешно создан, но в нем не удалось создать (некоторые) стандартные папки
Где косяк ?
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
может быть это из за прав доступа? права на папку вирт пользователя 700 для vmail:mail...
или нет.... есть такие опции
$CONF['create_mailbox_subdirs_hostoptions']=array('novalidate-cert','norsh');
$CONF['create_mailbox_subdirs_hostport']=;
папки создаются imap'ом, у меня настроен TLS/SSL, imap ssl у меня на 993 порту, а SMTPS на 465, что вписывать в эти опции? есть ссылочка на следующие флаги
http://www.php.net/manual/en/function.imap-open.php
или нет.... есть такие опции
$CONF['create_mailbox_subdirs_hostoptions']=array('novalidate-cert','norsh');
$CONF['create_mailbox_subdirs_hostport']=;
папки создаются imap'ом, у меня настроен TLS/SSL, imap ssl у меня на 993 порту, а SMTPS на 465, что вписывать в эти опции? есть ссылочка на следующие флаги
http://www.php.net/manual/en/function.imap-open.php
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
папки создает PostfixAdmin вот такой функцией
но я незнаю пхп....
Код: Выделить всё
function create_mailbox_subfolders($login,$cleartext_password)
{
global $CONF;
if (empty($login))
{
trigger_error('In '.__FUNCTION__.': empty $login',E_USER_ERROR);
return FALSE;
}
if (!isset($CONF['create_mailbox_subdirs']) || empty($CONF['create_mailbox_subdirs'])) return TRUE;
if (!is_array($CONF['create_mailbox_subdirs']))
{
trigger_error('create_mailbox_subdirs must be an array',E_USER_ERROR);
return FALSE;
}
if (!isset($CONF['create_mailbox_subdirs_host']) || empty($CONF['create_mailbox_subdirs_host']))
{
trigger_error('An IMAP/POP server host ($CONF["create_mailbox_subdirs_host"]) must be configured, if sub-folders are to be created',E_USER_ERROR);
return FALSE;
}
$s_host=$CONF['create_mailbox_subdirs_host'];
$s_prefix=$CONF['create_mailbox_subdirs_prefix'];
$s_options='';
$s_port='';
if (
isset($CONF['create_mailbox_subdirs_hostoptions'])
&& !empty($CONF['create_mailbox_subdirs_hostoptions'])
) {
if (!is_array($CONF['create_mailbox_subdirs_hostoptions']))
{
trigger_error('The $CONF["create_mailbox_subdirs_hostoptions"] parameter must be an array',E_USER_ERROR);
return FALSE;
}
foreach ($CONF['create_mailbox_subdirs_hostoptions'] as $o)
{
$s_options.='/'.$o;
}
}
if (isset($CONF['create_mailbox_subdirs_hostport']) && !empty($CONF['create_mailbox_subdirs_hostport']))
{
$s_port=$CONF['create_mailbox_subdirs_hostport'];
if (intval($s_port)!=$s_port)
{
trigger_error('The $CONF["create_mailbox_subdirs_hostport"] parameter must be an integer',E_USER_ERROR);
return FALSE;
}
$s_port=':'.$s_port;
}
$s='{'.$s_host.$s_port.$s_options.'}';
sleep(1); # give the mail triggering the mailbox creation a chance to do its job
$i=@imap_open($s,$login,$cleartext_password);
if (FALSE==$i)
{
error_log('Could not log into IMAP/POP server: '.imap_last_error());
return FALSE;
}
foreach($CONF['create_mailbox_subdirs'] as $f)
{
$f='{'.$s_host.'}'.$s_prefix.$f;
$res=imap_createmailbox($i,$f);
if (!$res) {
@imap_close($i);
return FALSE;
}
@imap_subscribe($i,$f);
}
@imap_close($i);
return TRUE;
}но я незнаю пхп....
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: скелет maildir
ну вот здесь он проходит по массивы $CONF['create_maildir_subdirs'] и для каждого его элемента вызывает imap_createmailbox()
так что, видимо, вы правильно засунули Spam в $CONF['create_maildir_subdirs'].
покажите функцию imap_createmailbox тогда.
postfixadmin - это вообще что такое? веб интерфейс?
он из апача работает?
а апач под каким юзером запущен?
Chebyrashka писал(а): ↑19.12.2009 09:38foreach($CONF['create_mailbox_subdirs'] as $f)
{
$f='{'.$s_host.'}'.$s_prefix.$f;
$res=imap_createmailbox($i,$f);
if (!$res) {
@imap_close($i);
return FALSE;
}
@imap_subscribe($i,$f);
}
так что, видимо, вы правильно засунули Spam в $CONF['create_maildir_subdirs'].
покажите функцию imap_createmailbox тогда.
postfixadmin - это вообще что такое? веб интерфейс?
он из апача работает?
а апач под каким юзером запущен?
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
Postfixdmin это веб морда для управления ящиками, паролями, пользователями и т.д.
Да он работает из апача
А апач запущен от рута
Функция imap_createmailbox я понятия не имею где растет, она не из постфикс админа, поиск в его директории ничего не дал, я думаю что эта функция довекота... но там я не знаю где ее искать, пробовал в директориях довекотовых, но тоже поиск неудался, да и файлы там не на sh, там ельфы какие то ))) я неособо еще в этом разбираюсь и незнаю что это )
Да он работает из апача
А апач запущен от рута
Функция imap_createmailbox я понятия не имею где растет, она не из постфикс админа, поиск в его директории ничего не дал, я думаю что эта функция довекота... но там я не знаю где ее искать, пробовал в директориях довекотовых, но тоже поиск неудался, да и файлы там не на sh, там ельфы какие то ))) я неособо еще в этом разбираюсь и незнаю что это )
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: скелет maildir
ну я прям не знаю :)
давай проведем маленький эксперимент (глупость конечно, но может поможет):
вставте перед
посмотрим, как остальные поддиректории описаны.
давай проведем маленький эксперимент (глупость конечно, но может поможет):
Код: Выделить всё
$ftest = fopen('/tmp/test', 'w');
fwrite($ftest, var_dump($CONF['create_mailbox_subdirs']));
fclose($fp);вставте перед
Код: Выделить всё
foreach($CONF['create_mailbox_subdirs'] as $f)посмотрим, как остальные поддиректории описаны.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
чего то я недопонял... и что должно произойти ?
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: скелет maildir
создаться файлик /tmp/test, в котором будет значение массива $CONF['create_mailbox_subdirs'] на момент вызова этой функцией.
если все директории создаются в этом месте можно поглядеть - как описаны в массиве другие.
если все директории создаются в этом месте можно поглядеть - как описаны в массиве другие.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
не создасться у меня никакого файлика, функция обраваетья на чем то и выдает false, до создания папок не доходит дело
-
Chebyrashka
- Сообщения: 21
Re: Решено: скелет maildir
проблема решена....
дело было в настройках
$CONF['create_mailbox_subdirs_host']='192.168.0.1';
$CONF['create_mailbox_subdirs_prefix']='';
$CONF['create_mailbox_subdirs_hostport']=993;
$CONF['create_mailbox_subdirs_hostoptions']=array('imap','ssl','novalidate-cert');
вот теперь все работает
дело было в настройках
$CONF['create_mailbox_subdirs_host']='192.168.0.1';
$CONF['create_mailbox_subdirs_prefix']='';
$CONF['create_mailbox_subdirs_hostport']=993;
$CONF['create_mailbox_subdirs_hostoptions']=array('imap','ssl','novalidate-cert');
вот теперь все работает
-
BaZilio
- Сообщения: 457
- Статус: Say оПХБЕР again!
Re: Решено: скелет maildir
Мне на этой неделе тоже понадобилось создавать папку .Spam.
Раньше postfix сам создавал папки пользователя, если пользователь был добавлен в базу и ему приходило письмо. Теперь я использую maildrop, чтобы тот раскладывал письма с пометкой "[SPAM]" в папку .Spam, но каталог почты пользователя теперь приходится создавать руками.
Наверное надо будет написать shell-скрипт для добавления пользователя, чтобы он и в базу логин добавлял, и maildirmake запускал, папку .Spam там создавал, и права нужные выставлял.
Раньше postfix сам создавал папки пользователя, если пользователь был добавлен в базу и ему приходило письмо. Теперь я использую maildrop, чтобы тот раскладывал письма с пометкой "[SPAM]" в папку .Spam, но каталог почты пользователя теперь приходится создавать руками.
Наверное надо будет написать shell-скрипт для добавления пользователя, чтобы он и в базу логин добавлял, и maildirmake запускал, папку .Spam там создавал, и права нужные выставлял.
Windows XP:
Netbook - Acer Aspire One A150.
Debian Squeeze amd64:
Laptop - Acer TravelMate 5520G.
Laptop_work - Toshiba Satellite C660.
Windows 7 x64:
Desktop - Core2Duo 6600 2.4GHz/6 GB/i965/GeForce 9500GT.
4 the lulz!