Por que é tão importante para o CR e LF para aparecer juntos em e-mail?

StackOverflow https://stackoverflow.com/questions/497064

  •  20-08-2019
  •  | 
  •  

Pergunta

A partir http://www.faqs.org/rfcs/rfc2822.html:

CR e LF só deve ocorrer em conjunto, como CRLF; Eles não devem aparecer independentemente no corpo.

Temos um serviço web que envia e-mails de confirmação, mas um de nossos usuários apontam para que este não adere ao padrão RFC 2822. Então, minha pergunta é, por que é importante para o CR e LF para aparecer juntos em mensagens de e-mail?

Foi útil?

Solução

Porque no e-mail CRLF é o separador de linha. Se você só usar CR ou usar apenas LF você terá todos os tipos de problemas inesperados com vários clientes, combinação de servidor SMTP. Alguns servidores irão rejeitar seus e-mails, alguns vão "consertar" seus e-mails. -mails fixos são alguns dos mais divertidos de se lidar.

Outras dicas

Porque é na RFC aceita?

Implementações são derivados de RFCs. Se isso não fosse o caso, então não haveria nenhuma garantia de interoperabilidade entre diferentes implementações. Pode ou não pode haver razões tangíveis, técnicos de exigir que eles aparecem juntos, mas, neste caso, essas razões são irrelevantes. É uma simples questão de "porque disse isso."

Pense no prazo de um teletipo de idade. CR retorna a cabeça de gravação para o início da linha, LF rola a uma linha de papel para a frente. Você precisa de ambos os passos para começar uma nova linha. Se você usar CR sem LF, você irá substituir o mesmo texto, que é obviamente ilegal.

De qualquer forma, esta é a razão historial para definir CR + LF como o código ASCII para uma nova linha. É claro que, no final, é códigos apenas arbitrárias. Alguns sistemas utilizam apenas CR para indicar uma nova linha, alguns sistemas utilizam apenas LF, alguns usam um personagem completamente diferente. RFC2822 tivesse que escolher um, e decidiu permitir que apenas o CRLF seqüência.

Uma vez que o RFC decidiu usar CRLF, faz sentido para não permitir CR ou LF separadamente, uma vez que este seria bastante inútil e problemático para lidar com qualquer maneira.

Se você não acabar com um CR, o que o coloca na mesma linha, então tudo o que escrever seria em cima dos caracteres na esquerda na mesma linha, em seguida, vem o LF e você está em alguma coluna em direção meio e começar a escrever novamente. Bagunçado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top