J'ai écrit un programme de traitement de courrier, qui consiste essentiellement à appliquer un modèle sur le courrier entrant et à le transmettre. Le courrier entrant va vers un compte Gmail, que je télécharge en utilisant POP, puis je lis le mail (à la fois html et multipart-MIME), apporte les modifications nécessaires au template, puis crée un nouveau mail avec le fichier plain + html texte et l'envoyer à une autre adresse.Caractères étranges dans le courrier électronique
Problème, lorsque le courrier arrive de l'autre côté, certains courriers ont été mutilés, avec des caractères étranges comme Ã
et Â
insérés magiquement. Ils n'étaient pas dans les mails d'origine, ils ne sont pas dans mon modèle, et je ne peux pas trouver n'importe quel type de modèle prévisible quant à quand ces caractères apparaissent. Je suis sûr que cela a quelque chose à voir avec les propriétés d'encodage des mails, mais je m'assure que le jeu de caractères et l'encodage de transfert du courrier sortant soient les mêmes que ceux du courrier entrant. Alors, que dois-je faire d'autre?
EDIT: Voici un échantillon snipped d'un courrier entrant:
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
=0A=0ASafari Special:=0A=0A=A0=0A=0ASafari in Thornybush Priv=
ate Game Reserve 9-12=0AJanuary 2012 (3nights)
Après le traitement, cela vient comme:
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
=0D=0A=0D=0ASafari Special:=0D=0A=0D=0A=C2=A0=0D=0A=0D=0A=
Safari in Thornybush Private Game Reserve 9-12=0D=0AJanuary=
2012 (3nights)
Notez l'insertion des caractères =0D
et =C2
(côté de quelques =0A
qui n'étaient pas dans l'original).
Alors, que pensez-vous qu'il se passe ici?
UN AUTRE CLUE: Voici mon code qui crée l'autre point de vue:
var htmlView = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");
htmlView.ContentType.CharSet = charSet;
htmlView.TransferEncoding = transferEncoding;
m.AlternateViews.Add(htmlView);
Le long des lignes de ce @mjwills suggéré, peut-être la méthode CreateAlternativeViewFromString()
suppose déjà UTF-8, et le changer plus tard iso -8859-1 ne fait pas de différence?
Cela ressemble à un problème d'encodage. Publiez un exemple de message que vous envoyez et le message brouillé qui en résulte. Vous devriez jeter un oeil à la forme binaire du courrier à chaque étape du processus. – Mankarse
@Mankarse - voir mon edit –