J'utilise JavaMail (javax.mail) pour envoyer des mails. J'ai ajusté avec succès le contenu de mon courrier en tant que UTF-8. Cependant, je n'ai pas pu définir la ligne de sujets comme une chaîne codée UTF-8.
J'ai essayé même p> sur le sujet, mais elle envoie toujours comme CP1252. Des exemples d'en-têtes du courrier sont donnés ci-dessous: p> des idées? P>
(source: friendfeed-media.com ) sub> p> p>
6 Réponses :
Résolu.
mail.setSubject(MimeUtility.encodeText(subject, "utf-8", "B"));
Vous devez utiliser SETSUNJECT (Sujet de chaîne, Chargy Chart) qui est une fonction pratique à cet effet. dans Miméutellitive on dit: P> Il existe un ensemble de méthodes pour encoder et décoder des en-têtes MIME conformément à la RFC 2047. Notez que, en général, ces méthodes ne sont pas nécessaires lors de l'utilisation de méthodes telles que setsubject et SETRecipients; JavaMail va automatiquement encoder et décodera des données lors de l'utilisation de ces méthodes "de niveau supérieur". Les procédés ci-dessous ne sont ci-dessous que lors de la maniottage des en-têtes MIME crus utilisant des méthodes de SetHader et GetHeader. P>
blockQuote> de mon point de vue, Le Votre exemple posté est le "résultat" de p>
message.Setsubject code> doit être le point d'entrée à cet effet. P>
CP1252 CODE> Dans votre objet Encodage apparaît, car il s'agit de votre codage standard sur votre plate-forme. p>
Mon mimemessage n'a pas de SetSubject (string, chaîne) de manière intéressante. Peut-être que j'utilise une ancienne version de JavaMail. Merci quand même.
Cela doit être un très vieux Javamail, car même [Mimemessage dans la version 1.1] [1] de l'année 1999 l'a. ;-) [1]: CS .Auckland.ac.nz / Références / Java / JavaMail / Javax / Mail / Star / ...
Le message ne contient pas de SetSubject (chaîne, chaîne) alors que Mimemessage fait.
Problème résolu!
mail.setSubject(MimeUtility.encodeText(subject, "utf-8", "B"));
J'ai rencontré un problème similaire avec Apache Camel Mail, qui utilise Java Mail. Réglage p>
Avant de rouler sur SMTP, résolu le problème. P> Exchange.setProperty (Exchange.Charset_name, "utf-8"); code> p>
Quel est "Exchange"?
the MIMEMessage.SetSubject (sujet de chaîne, chaîne charset) La méthode résoudra le problème: mimemsg.setsubjecte (sujet, "utf-8"); p>
Ceci est un lien mis à jour. Le lien de documentation précédent a été rejeté par Oracle après que Oracle ait acheté le soleil. P>
résolu.