O Maildir usa um formato exclusivo que facilita bastante isso. Simplesmente coloque o e-mail no diretório new/
dentro dos usuários de correio mailroot, se quiser que ele apareça como novo. Caso contrário, vai no diretório cur/
.
Estou migrando meus e-mails de um servidor antigo para um novo, a configuração é boa (contas virtuais do mysql e somente imap ), com dovecot e postfix. Ele já está sendo executado para outros usuários, apenas quero mesclar contas antigas do servidor antigo para o novo.
A migração correu bem, eu só queria saber como eu poderia " mostrar " todos os e-mails antigos em Clientes UA. Quer dizer, existe algum arquivo índice dovecot ou tal que possa ser recriado, destruído, de forma que todos os e-mails antigos sejam "sinalizados" como novo ?
Para mensagens do Maildir, tais sinalizadores são armazenados no nome do arquivo . Por exemplo:
1328040798.M558634P29803.equal,S=17876,W=18294:2,FS
As letras FS
após a vírgula significam Flagged
e Seen
. Para marcar a mensagem como "invisível", remova o S
flag ...
for msg in maildir/cur/*; do
msgbase=${msg%,*}
flags=${msg##*,}
flags=${flags//S/}
mv -v "$msg" "$msgbase,$flags"
done
... ou simplesmente envie as mensagens para a pasta new
:
mv maildir/cur/* maildir/new/
Eu tentei a resposta aceita e ela falhou - as versões dovecot em jogo provavelmente estão muito distantes e também trocamos o MTA subjacente. Então, aqui está uma solução mais robusta: doveadm import
Supondo que você está hospedando e-mails para o domínio hosted.tld e existe uma conta para o login [email protected] (ou talvez simplesmente ruth ) e o backup do servidor anterior está no formato MailDir e disponível dentro de uma estrutura de pastas como / tmp / TRANSFER / domínio / conta / Maildir então você pode importá-los para sua nova hospedagem dovecot com
$ doveadm import -u [email protected] maildir:/tmp/TRANSFER/hosted.tld/local.account/Maildir "" all
mais em termos gerais:
$ doveadm import -u LOCAL_USER FORMAT:PATH "" all
Tudo o que pode ser extraído do manual excelente . Foram necessárias duas tentativas para descobrir que simplesmente usar "" (caixa de correio de destino vazia) era o que nós realmente queríamos; -)
Você pode até ter mais sorte do que nós sem precisar transferir os arquivos de antemão - se o servidor antigo e o novo estiverem funcionando ao mesmo tempo e suas contas estiverem configuradas adequadamente usando sincronização doveadm .
O formato Maildir consiste em uma série de diretórios - correspondendo à estrutura de pastas IMAP, dentro da qual estão os emails, um arquivo por email.
Para copiar e-mails de um sistema de e-mail para outro, você pode simplesmente copiar os diretórios e arquivos e garantir que as permissões para esses diretórios e arquivos estejam corretas no destino.
A estrutura do Maildir tem esta aparência:
mail/cur/
mail/new/
mail/tmp/
mail/.personal/cur/
mail/.personal/new/
mail/.personal/tmp/
Isso mostra a pasta INBOX (cur, new, tmp) e outra pasta chamada "personal". Observe o prefixo do ponto mostrando que essa pasta está oculta, portanto isso deve ser considerado na sua transferência.
A pasta new
contém todos os emails que não foram vistos por um cliente e a pasta cur
contém os emails atuais. A pasta tmp
deve estar vazia se o servidor de e-mail não estiver funcionando.