2013-05-01 4 views
0

Независимо от того, что я пытаюсь, я не могу получить имя отправителя, которое будет отображаться в исходящих письмах, отправленных через класс сессии javax.mail.javax.mail не включая имя отправителя в письмах

Обратите внимание, что я использую Rhino, поэтому здесь есть смесь javascript и java, но проблема с кодом существует и в чистом java.

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()); 

электронной почты, которая приходит через имеет:

Sender: Personal Name <[email protected]> 

Но из всегда:

From: [email protected] 

Таким образом, почтовые клиенты, такие как Outlook, и Gmail не выщипывания имя.

Я попытался добавить

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

, но это не делает никакой разницы.

У кого-нибудь есть опыт работы с этой ошибкой?

Спасибо.

+0

Показать полный самостоятельный пример. –

+0

Что вы используете для SMTP-сервера? Поддерживает ли это «личное имя»? –

+0

Я могу отправить через командную строку в порядке, поэтому сервер поддерживает ее. Проблема с библиотекой javax где-то. – Scott

ответ

1

Какая боль.

Ошибка была в том, что я использовал message.setSender вместо message.setFrom.

Изменение, которое решило его.

1

Я хотел бы, чтобы очистить его, как я и тот же вопрос

// sender the email string example [email protected] 

message.setFrom(new InternetAddress(sender)); 

 Смежные вопросы

  • Нет связанных вопросов^_^