Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache Commons Email and UTF-8

How do you change the encoding of an email generated with Apache Commons Email to UTF-8? I want to send emails I generate depending on the receiver's language, and I need to take in account Japanese and Russian. Problem is: the Email class doesn't propose a UTF-8 constant I can pass to the Email.setCharset method. Any clue?

like image 395
Alexis Dufrenoy Avatar asked Jun 18 '11 22:06

Alexis Dufrenoy


2 Answers

There does appear to be a constant for UTF_8 in the Apache Commons Email API:

UTF_8

static final String UTF_8
See Also:
  Constant Field Values

All Known Implementing Classes:
  Email, HtmlEmail, ImageHtmlEmail, MultiPartEmail, SimpleEmail

Which is defined in http://commons.apache.org/email/apidocs/src-html/org/apache/commons/mail/EmailConstants.html#line.38 as:

String UTF_8 = "utf-8";

See http://commons.apache.org/email/apidocs/org/apache/commons/mail/EmailConstants.html

like image 55
Rob Raisch Avatar answered Oct 15 '22 11:10

Rob Raisch


If you work with the version 1.2, you can create your own constant, until the method accept a String and will throw an UnsupportedCharsetException if there's no support for the named charset in the JVM.

If it's possible, you can use instead the UTF_8 constant in the CharEncoding class in Apache commons lang.

like image 26
J-Y Avatar answered Oct 15 '22 10:10

J-Y