Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Cyrus IMAP: "Message contains bare newlines" (Erro ao importar mensagens)
Linux user
Publicado por Fabio Soares Schmidt em 25/01/2012

Login: fs.schmidt, 197578 pontos
[ Hits: 614 ]

Cyrus IMAP: "Message contains bare newlines" (Erro ao importar mensagens)

Ao tentar importar algumas mensagens no Cyrus IMAP, o servidor retorna a seguinte mensagem:
Message contains bare newlines

Na página do projeto Cyrus, no próprio FAQ, o problema já está relatado:

     "Message contains bare newlines

     Why does Cyrus reject messages with 'bare newlines'

     Please first read about Cyrus Interoperability.

     Bare newlines is a nono in an RFC822 message. You should first try to fix the software that is causing the problem.

     As it happens, the bare newlines-rejection has never been a problem for us."

O problema, portanto, se trata de 'quebra de linha', onde alguns caracteres que o Outlook (principalmente) utiliza para marcar o fim de uma linha de texto violam a 'RFC822', e o Cyrus IMAP é conhecido, além da sua boa performance e escalabilidade, por ser bastante rigoroso com RFCs.

Como não há qualquer documento na base de conhecimento pública da Microsoft que viabilize alterar o comportamento do Outlook/Exchange para corrigir este problema, portanto existem duas soluções:

I- Alterar o código do Cyrus para não rejeitar 'bare newlines'. Isso envolve aplicar um 'patch' já conhecido, muitas soluções que utilizam o Cyrus (SUSE e-mail server e Invoka, por exemplo) já optaram por este caminho.

II- Fazer com que o cliente que está importando a mensagem, identifique esse comportamento e corrija conforme a 'RFC822'.

Abaixo está o conteúdo do 'patch' para o Cyrus desconsiderar essa RFC. Foi feito para a versão 2.3.7, caso utilize alguma versão mais recente, provavelmente será necessário modificar:

— NEW FILE cyrus-imapd-2.3.7-nobarenewlinescheck.patch — — cyrus-imapd-2.3.7/imap/message.c 2006-10-28 22:18:08.000000000 +0200 +++ cyrus-imapd-2.3.7/imap/message.c.nobarenewlinescheck 2006-10-28 22:21:55.000000000 +0200 @@ -256,8 +256,9 @@ r = IMAP_MESSAGE_CONTAINSNULL; } else if (*p = ‘\n’) { - if (!sawcr && (inheader || !allow_null)) - r = IMAP_MESSAGE_CONTAINSNL; + /* Do *NOT* check for RFC compliant line breaks (bare newlines) */ + /* if (!sawcr && (inheader || !allow_null)) + r = IMAP_MESSAGE_CONTAINSNL; */ sawcr = 0; if (blankline) { inheader = 0;:


Para aplicar o 'patch', copie o conteúdo acima, salve o arquivo no diretório raiz dos fontes e execute o comando:

# patch -p1 < arquivo.patch

Feito isto, compile o Cyrus normalmente.

Fabio Soares Schmidt
http://respirandolinux.wordpress.com


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Restringindo um domínio no Zimbra 5.0 a enviar e-mail externo
   Dica Linux recomendada Configurando Kmail para usar conta do Gmail
   Dica Linux recomendada Cyrus IMAPD - Erro "Unsupported feature(s) in require" ao aplicar filtros Sieve
   Dica Linux recomendada Utilizando o dicionário do BrOffice no verificador ortográfico do Thunderbird
   Dica Linux recomendada Removendo e-mails gigantes da fila no Qmail

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.