none
Codificação SMTP RRS feed

  • Pergunta

  • Olá pessoal.

    Desenvolvendo um projeto que envolve muito de SMTP e automação de emails, me deparei com o seguinte problema:
    Ao abrir o código fonte de uma mensagem de email, é normal encontrar, entre outras coisas, sinais de '=' substituídos por '=3D', um '=' no fim de cada linha, etc.
    Gostaria de saber se isso é coisa do SMTP ou é algum padrão, pois distorce o fonte das mensagens...

    Caso seja, alguém sabe onde posso achar uma função para fazer o código voltar ao original, ou mesmo um manual desse padrão?

    Obrigado!
    sexta-feira, 21 de agosto de 2009 16:37

Todas as Respostas

  • Olá,

    é do HTML mesmo. Se você der um replace por String.Empty nao resolve ?

    Dê mais detalhes do seu projeto pra que possamos ajudar melhor.

    []s
    http://www.marceloramos.net/Blog

    Marcelo Ramos
    sábado, 22 de agosto de 2009 21:57
  • Olá Marcelo.
    Até poderia usar o replace, mas só iria resolver o problema do '=3D', e essa não é a única interferência.
    Gostaria de saber por que isso acontece, e qual o padrão, para poder reverter via código.

    Obrigado
    domingo, 23 de agosto de 2009 17:51
  • Olá André,

    Eu nunca passei por este problema ao utilizar as classes de SMTP do .NET porem Eu sempre indico o Encoding a ser utilizado nas mensagens.

    Tipo, o campo de "Assunto" está com o problema ? se estiver, pode ser algum problema de acentuação e uma solução seria indicar o Encoding para o campo assunto.
    O mesmo ocorre para o campo de "Mensagem". Se houver algum caracter acentuado que não está aparecendo corretamente pode ser por causa do Encoding, para o campo de mensagem, que não foi colocado.

    Se mesmo assin não funcionar, você poderia colocar parte do código para que possamos estar te dando uma resposta mais exata do seu problema ? ( se possível, a mensagem antes e depois de ser enviada tbem )

    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0

    Se a resposta de alguém foi útil, marque a resposta como tal.
    Se alguém conseguiu te ajudar, poderia marcar como "Respondido" ?
    Obs: Resposta útil é diferente de resposta final.

    Grato. :)
    segunda-feira, 24 de agosto de 2009 10:06
  • Olá Rafael,
    o problema só se manifesta quando a gente vê o código fonte da mensagem. Em exibição normal, não acontece nada, o texto fica perfeito. E também não tá relacionado com acentos, pois os mesmos não sofrem nada.
    Como o meu sistema trabalha o código fonte das mensagens recebidas, estou tendo problemas com isso.

    Tente, no seu e-mail mesmo, abrir o fonte de qualquer mensagem, você vai ver que tem coisas estranhas, que não afetam a exibição. Uma delas é o fato de todos os '=' aparecerem como '=3D'...
    segunda-feira, 24 de agosto de 2009 17:35
  • Esse "código fonte da mensagem" é depois que o "cliente" recebe o e-mail ?
    Neste caso acho q pode ser alguma codificação envolvendo o POP3/IMAPI e não necessariamente o SMTP.

    Já fiz aplicações que enviam e-mail e-mails com o contéudo em HTML  e em TEXTO e em nenhum dos casos houve problema com a leitura da mensagem.
    Isso pode ser alguma coisa relacionada ao POP.
    Já procurou ver sobre isso ?  ( Sei que estou sendo um pouco "ríspido" nesta resposta mas é que ainda não consegui entender o motivo do problema e nunca passei por isso. )

    ---------
    Chute:
    Se consegui entender a sua necessidade, vc está lendo um e-mail que foi enviado, recupera as informações necessárias e automatiza algum processo. É isso mesmo ?
    Se for, não poderia ser alguma coisa relacionado com a classe utilizada para ler as informações dos e-mails não ?
    ---------

    ----------
    Idéia:
    Já tentou fazer um HtmlEncode no conteúdo do e-mail antes de envia-lo ? talvez isso possa ajudar a minimizar o problema.
    ----------
    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0

    Se a resposta de alguém foi útil, marque a resposta como tal.
    Se alguém conseguiu te ajudar, poderia marcar como "Respondido" ?
    Obs: Resposta útil é diferente de resposta final.

    Grato. :)
    segunda-feira, 24 de agosto de 2009 18:57
  • Oi Rafael.

    Sim, o código de que falo é depois que o cliente recebe o email.

    Creio que a coisa aconteça no SMTP por que eu vejo o problema não só no Outlook, mas também no web mail.

    É exatamente isso que vc chutou: há um programa que pega os bounces que chega numa caixa postal, e depois lança as informações em um BD, para serem processadas.

    O código que uso para enviar é o seguinte:

    mailMsg.IsBodyHtml =

    true;

    mailMsg.BodyEncoding = System.Text.

    Encoding.Default;

    smtpCliente.Send(mailMsg);


    --

    segunda-feira, 24 de agosto de 2009 19:12