나는 고객에게 이메일을 보내기 위해 아파치 코 몬즈 이메일을 사용하고 있지만 'Semana da Computação'(portugues BR에 있음)라는 클라이언트가 있지만 'Semana da Computaçããão'라고되어 있습니다. 내 코드를 수정하려고하지만 아무것도 작동 :Apache Commons Email의 변경 문자셋은 어떻게됩니까?
public static boolean emailWithImage(String subject, String message, String emailReceiver, String imageURL) {
HtmlEmail email = new HtmlEmail();
email.setCharset("UTF-8"); // I change here, but it is not working
email.setHostName(Constantes.EMAIL_HOST_NAME);
email.setSmtpPort(587);
DefaultAuthenticator authenticator =
new DefaultAuthenticator(Constantes.EMAIL_USER, Constantes.EMAIL_PASSWORD);
email.setAuthenticator(authenticator);
email.setTLS(true);
try {
email.setFrom(Constantes.EMAIL_USER, Constantes.EMAIL_NAME);
email.setSubject(subject);
email.addTo(emailReceiver);
URL url = new URL(imageURL);
String cid = email.embed(url, "image"); /* it must be 'cid' the name of the image */
email.setHtmlMsg("<html><img src=\"cid:" + cid + "\"> <p>" + message + "</p> </html>"); /* set the html message */
email.setTextMsg(message); /* send a alternative text in case when the email reader don't support html */
email.send();
} catch (EmailException ex) {
return false;
} catch (MalformedURLException ex) {
return false;
}
return true;
}
어떤 아이디어가? 왜 이름이 제대로 전달되지 않고 어떻게 해결할 수 있습니까?
대신 setHtmlMessage (...)를하고, 당신이email.addPart("<html>body here</html>", "text/html;charset=UTF-8");
또 다른 대안이 시도하고 HTML에서 문자 집합을 배치하는 것입니다
을 할 경우가 작동 할 수
addPart 솔루션이 제 사용에 적합하다는 것을 확인했습니다. –