Java-E-Mail unterstützt keine UTF-8-Zeichen im Betreff der E-Mail

Hier ist mein code einstellen Betreff der E-Mail:

  String bodyMessage="Dear Renavçilçleç Françoisç InCites™";
  String subject = "Your new InCites™ subscription";

  Properties _sessionProperties = new Properties();
  _sessionProperties.put("mail.transport.protocol", "smtp");
  _sessionProperties.put("mail.smtp.host", "hostname");
  _sessionProperties.put("mail.smtp.port", "25");

  Session session = Session.getInstance(_sessionProperties, null);

  MimeMessage mimemsg = new MimeMessage(session);
  mimemsg.addRecipients(Message.RecipientType.TO, "[email protected]");
  mimemsg.setSubject(subject, "UTF-8");

  //Create a multi-part message
  MimeMultipart multipart = new MimeMultipart();
  //Set the subType
  multipart.setSubType("alternative");
  BodyPart part = new MimeBodyPart();

  part.setContent(bodyMessage, "charset=UTF-8");

  //Set the emailBody and emailType to MIME BodyPart
  part.setDataHandler(new DataHandler(new ByteArrayDataSource(
      bodyMessage, "text/html;")));

  //Add the MIME BodyPart to MIME multiPart
  multipart.addBodyPart(part);

  //Put parts in message
  mimemsg.setContent(multipart);

  //Send message
  Transport.send(mimemsg);

Aber noch in der Betreffzeile der E-Mail, es zeigt immer noch wie "Your new InCites™ subscription"

  • So... das problem ist, dass die E-Mail-client zeigt Ihnen genau, was Sie sehen wollen?
  • Ich bin versucht, UTF-8-Zeichen-Unterstützung in der Betreffzeile der E-Mail. Aber noch kann ich nicht in der Lage zu tun, dass im Betreff der E-Mail
  • Wie unterstützt die UTf-8-Zeichen in die Betreffzeile der E-Mail mit MimeMessage oder gibt es eine andere Möglichkeit, das zu tun?
  • Ignacio Vazquez-Abrams: Das problem ist, ich bin Einstellung der UTF code für " TM " - symbol. In der E-Mail-client Körper es dekodiert Ordnung in das symbol, sondern in der Betreff-es wird der code anstelle der Decodierung in die " TM " - symbol.
  • Sie sind mit HTML-Codierung zum codieren eines Charakter und Ihre E-mail-client angezeigt wird, wird die codierte Daten. Schlägt mich, warum Sie havent versucht, mit dem Charakter, wie Sie ist.
  • Es ist der Unicode für das symbol " TM " (z.B. Trade-Mark-Symbol)
  • Nein, es ist nicht. U+2122 ist der Unicode-codepoint für . Was Sie haben ist ein Haufen von ASCII-Zeichen.
  • Ignacio Vazquez-Abrams: Kann u senden Sie mir den code zum einbinden-trade-mark-symbol in der Betreffzeile der E-Mail
  • Ignacio Vazquez-Abrams: Bitte finden Sie den code. In den Körper der E-Mail das Markenzeichen-symbol-code ist entschlüsselt perfekt, aber in dem Thema spiegelt es als code selbst
  • Ich werde ganz offen sein. Sie müssen verstehen, wie die E-mail-client führt die Dekodierung von E-mail-Nachrichten. Der Körper wird wahrscheinlich angezeigt, mit einem HTML-renderer und das ist der Grund, warum HTML-Codierung arbeitet im Körper. Es wird nicht die gleiche sein für das Thema, und dass Sie uns, warum einige Leute haben empfohlen, die Verwendung der UTF-8-Zeichen (in der Weise, dass es dargestellt werden kann Java-source-code). Über eine HTML-codierte Zeichen in einem solchen Ort wird man nicht überall, da die HTML-Codierung verwendet ASCII.
  • Vineet Reynolds : Danke für Ihre Klarstellung.

InformationsquelleAutor Kalyan Raju | 2010-12-10
Schreibe einen Kommentar