2011-04-25 3 views
13

나는 고객에게 이메일을 보내기 위해 아파치 코 몬즈 이메일을 사용하고 있지만 '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에서 문자 집합을 배치하는 것입니다

을 할 경우가 작동 할 수

답변

3

,

email.setHtmlMsg("<html><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=UTF-8\"></head>body here</html>"); 
+0

addPart 솔루션이 제 사용에 적합하다는 것을 확인했습니다. –

21

이것은 또한 작동 또한,

email.setCharset("utf-8"); 

는 1.3을 사용하는 경우,

,
email.setCharset(org.apache.commons.mail.EmailConstants.UTF_8); 
+0

도 참조하십시오. http://stackoverflow.com/questions/6399187/apache-commons-email-and-utf-8 – nylund

1

동일한 문제가 발생하여이를 해결하기 위해 인코딩을 ISO-8859-1로 설정했지만 현재 작동 중입니다.

+1

안녕하세요 사용자는이 코드를 사용하여보다 완벽한 답변을 작성할 수 있습니다. 행운을 빌어 요, 그리고 이것이 도움이되기를 바랍니다! – jmort253