LINUX.ORG.RU
ФорумAdmin

Сконвертировать почтовый ящик.

 ,


1

1

Здравствуйте!

Есть почта, dovecot хранит письма в формате mdbox, мне нужно получить копию ящика в формате Maildir.

Читаю example http://manpages.ubuntu.com/manpages/trusty/man1/dsync.1.html пытаюсь повторить, но не выходит.

Ящики лежат в /usr/local/mail/domainname/$usernamе

Я для теста скопировал свой ящик в /home/username/mdbox И находясь в этой папке делаю

# dsync mirror maildir:~/Maildir
dsync(root): Error: Mail locations must use the same virtual mailbox hierarchy separator (specify separator for the default namespace)

> dsync(root): Fatal: Mail locations must use the same virtual mailbox 
> hierarchy separator (specify separator for the default namespace).
> 
> My problem is that I do not know how to set separator in 10-mail.conf. I 
> would appreciate any pointers. 

namespace {
separator = /
inbox = yes
}

http://www.dovecot.org/list/dovecot/2010-September/053186.html

sin_a ★★★★★ ()
Последнее исправление: sin_a (всего исправлений: 1)
Ответ на: комментарий от sin_a

sin_a Спасибо за ответ. Прояснения в голове как работает конвертация через dsync это не принесло, к сожалению. Далее, вольный перевод

Конвертация

Предполагаем, что параметр mail_location в /etc/dovecot/conf.d/10-mail.conf установлено значение: mail_location = mdbox: ~ / mdbox

Вошедшего в систему пользователь операционной системы может изменить значение по умолчанию, которое установлено в 10-mail.conf и конвертировать свои письма из формата mdbox в формат и папку Maildir

Пользователь должен выполнить команду:

 dsync mirror Maildir: ~ / Maildir 

То есть, я, нахожусь в операционной системе под пользователем root могу только ящик пользователя root конвертировать? Наверняка ведь это не так.

После того как я добавил параметр separator = / ошибка которую я писал в первом посте - ушла.

Сейчас я скопировал из своего ящика папку mdbox к себе в home каталог и выполняю

root@MainMail:/home/greydjin# ls
mdbox
root@MainMail:/home/greydjin# dsync mirror maildir:/home/greydjin/mdbox
Комп подумал немного, моя папка mdbox весит 4.4Гб, так что я подумал что конвертация идет.
 root@MainMail:/home/greydjin# du -h
4,4G    ./mdbox
8,0K    ./.ssh
4,4G    .
root@MainMail:/home/greydjin# du -h mdbox/
17M     mdbox/mailboxes
4,4G    mdbox/storage
4,4G    mdbox/
root@MainMail:/home/greydjin# 
И в итоге ничего? Папки Maildir нет нигде.

GreyDjin ()
Ответ на: комментарий от GreyDjin

Продолжу свое повествование...

В /etc/dovecot/conf.d/10-mail.conf у меня стояло mail_location = mdbox:~/mdbox

Я его поменял на mail_location = maildir:~/Maildir

Перезапустил dovecot

Выполнил

root@MainMail:/home/greydjin# dsync mirror maildir:/home/greydjin/mdbox

После этого в /root/ появилась папка Maildir !

Вот только весит эта папка 24Кбайта, явно не могло так сконвертировать 4Гб ящик с почтой.

GreyDjin ()
Ответ на: комментарий от GreyDjin

Если не ошибаюсь, я выполнял копирование примерно следующей командой:

dsync -u "domain@user" mirror maildir:/new/mail/dir/user
Где user это существующий логин в dovecot.

Но мне странно, зачем такая конвертация. Для доступа к ящикам есть мастер пользователи: http://wiki2.dovecot.org/Authentication/MasterUsers

sin_a ★★★★★ ()
Ответ на: комментарий от sin_a

Чтож, я нашел как запускать конвертацию.

К сожалению, вариант с dsync -u мне не подходит, так как я выполняю все телодвижения на отдельно поднятой виртуалке где dovecot не подключен к реальному ldap в котором хранятся пользователи, у меня только статичные файлы есть и утилита dsync.

Я запускаю так

dsync -o "mail_location=mdbox:/usr/local/mail/domain.ru/a.familya/mdbox" mirror "maildir:/root/Maildir"
dsync(root): Error: Cached message size larger than expected (1215 > 842)
dsync(root): Error: Corrupted index cache file /usr/local/mail/domain.ru/a.familya/mdbox/mailboxes/Archives/2006/dbox-Mails/dovecot.index.cache: Broken physical size for mail UID 1
dsync(root): Error: copy: i_stream_read() failed: Invalid argument
dsync(root): Error: mail parser: read(/usr/local/mail/domain.ru/a.familya/mdbox/storage/m.1249, box=Archives/2006) failed: Invalid argument
dsync(root): Error: Mailbox Archives/2006: read(msg input) failed: Cached message size larger than expected (1215 > 842)
dsync(root): Error: mail parser: read(/usr/local/mail/domain.ru/a.familya/mdbox/storage/m.1249, box=Archives/2006) failed: Invalid argument ,



Теперь буду гуглить эту ошибку.

По поводу мотивации - я не смог добиться ее обоснования. Нужно файлы на флешке отдать и все.
GreyDjin ()
Ответ на: комментарий от anc

Anc, y меня не получилось этим скриптом воспользоваться. Выполняется без ошибок, на выходе папка Maildir весящая 24Kb

Я почистил индексные файлы в mdbox/mailboxes/* и команда из предыдущего сообщения моего выполнилась без ошибок, хотя и долго.

GreyDjin ()
Ответ на: комментарий от GreyDjin

Ну я же только первую ссылку нашел, поищите еще... там много по части конвертации mbox в maildir

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.