2013-05-01 4 views
0

아무리 시도해도 javax.mail Session 클래스를 통해 보낸 보내는 메일에 보낸 사람 이름을 표시 할 수 없습니다.javax.mail에 전자 메일의 보낸 사람 이름이 포함되지 않습니다.

Rhino를 사용하고 있으므로 여기에는 javascript와 java가 혼합되어 있지만 순수한 자바에는 코드 문제가 있습니다.

Sender: Personal Name <[email protected]> 

을하지만로부터는 항상 :를 통해 제공

var _java = JavaImporter(javax.mail, javax.mail.internet, java.util); 

     var props = new _java.Properties(); 
     props.put("mail.smtp.host", myHost); 
     props.put("mail.smtp.port", "465"); 
     props.put("mail.smtp.user", myUserName); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.socketFactory.port", 465); 
     props.put("mail.smtp.socketFactory.class", 
        "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.socketFactory.fallback", "false"); 
     props.put("mail.smtp.ssl", "true"); 

     var session = _java.Session.getInstance(props); 

     var message = _java.MimeMessage(session); 
     message.setSender(
      new _java.InternetAddress("myEmailAddress", "My Full Name") 
     ); 
     message.setRecipients(
      _java.Message.RecipientType.TO, 
      [new _java.InternetAddress("[email protected]", true)] 
     ); 
     message.setText("Testing"); 
     message.setSubject("Test"); 
     message.setSentDate(new Date()); 
     var t = session.getTransport("smtp"); 
     t.connect(myUserName, myPassword); 
     t.sendMessage(message, message.getAllRecipients()); 

이메일은이

From: [email protected] 

따라서 Outlook 및 Gmail과 같은 메일 클라이언트가 이름을 따 버릴 수 없습니다.

나는

props.put("mail.smtp.from", "Full Name <[email protected]>") 

을 추가하는 시도했지만이 어떤 차이를하지 않습니다.

아무도이 버그에 경험이 있습니까?

감사합니다.

+0

표시 완전한 자립 예를 가지고 선택을 취소하고 싶습니다. –

+0

SMTP 서버에 무엇을 사용하고 있습니까? "개인 이름"을 지원합니까? –

+0

서버에서 지원하므로 명령 줄을 통해 제대로 보낼 수 있습니다. 문제는 javax 라이브러리의 어딘가에 있습니다. – Scott

답변

1

무슨 고통인가.

버그는 내가 message.setFrom 대신에 message.setSender를 사용하고 있다는 것이 었습니다.

변경하여 해결했습니다.

1

나는이 같은 문제를

// sender the email string example [email protected] 

message.setFrom(new InternetAddress(sender));