12
votes

JavaMail Changement de brandon de la ligne d'objet

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 xxx

sur le sujet, mais elle envoie toujours comme CP1252. Des exemples d'en-têtes du courrier sont donnés ci-dessous:

des idées?

 exemple d'en-têtes de messagerie
(source: friendfeed-media.com )


0 commentaires

6 Réponses :


25
votes

Résolu.

mail.setSubject(MimeUtility.encodeText(subject, "utf-8", "B"));


0 commentaires

30
votes

Vous devez utiliser SETSUNJECT (Sujet de chaîne, Chargy Chart) qui est une fonction pratique à cet effet. xxx

dans Miméutellitive on dit:

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.

de mon point de vue, message.Setsubject doit être le point d'entrée à cet effet.

Le CP1252 Dans votre objet Encodage apparaît, car il s'agit de votre codage standard sur votre plate-forme.

Votre exemple posté est le "résultat" de xxx


3 commentaires

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.



3
votes

Problème résolu!

mail.setSubject(MimeUtility.encodeText(subject, "utf-8", "B"));


0 commentaires

0
votes

J'ai rencontré un problème similaire avec Apache Camel Mail, qui utilise Java Mail. Réglage

Exchange.setProperty (Exchange.Charset_name, "utf-8");

Avant de rouler sur SMTP, résolu le problème.


1 commentaires

Quel est "Exchange"?



0
votes

the MIMEMessage.SetSubject (sujet de chaîne, chaîne charset) La méthode résoudra le problème: mimemsg.setsubjecte (sujet, "utf-8");

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.


0 commentaires

0
votes

résolu. XXX


0 commentaires