Setting the from name in a javax.mail.MimeMessage?

后端 未结 4 2048
生来不讨喜
生来不讨喜 2020-12-08 18:28

Currently, our application uses a javax.mail to send email, using javax.mail.MailMessage. We set the From headers of the email this way:

Message msg = new Mi         


        
相关标签:
4条回答
  • 2020-12-08 19:04

    In case when I used localized text with special characters like \u00FA I had problems with encoding email address alias for some pop3 clients if I'd used just

    MimeMessage m = new MimeMessage(session);
    m.setFrom();
    

    It can be resolved by separate email address and alias by invoke:

    MimeMessage m = new MimeMessage(session);
                m.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"),"UTF8"));
    

    ref: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String,%20java.lang.String,%20java.lang.String)

    0 讨论(0)
  • 2020-12-08 19:05
    ic = new InitialContext();
    
    final Session session = (Session) ic.lookupLink(snName);
    final Properties props = session.getProperties();
    
    props.put("mail.from", mailFrom); //blabla@mail.com
    props.put("mail.from.alias", mailName);//"joao Ninguem"
    
    // Create a message with the specified information.
    final MimeMessage msg = new MimeMessage(session);
    msg.setSubject(subject);
    msg.setSentDate(new Date());
    
    msg.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"), "UTF8"));
    
    
    msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo, false));
    msg.setContent(body, "text/html");
    
    // Create a transport.
    Transport.send(msg);
    
    0 讨论(0)
  • 2020-12-08 19:20

    If you want to store the email + the name in one string (easier than keeping two string):

    Message msg = new MimeMessage(mailSession);
    msg.setFrom(new InternetAddress("Company XYZ <mail@companyxyz.com>"));
    
    0 讨论(0)
  • 2020-12-08 19:21

    OK, reading documentation about ALL the classes involved would have been helpful. The correct syntax should be

    Message msg = new MimeMessage(mailSession);
    msg.setFrom(new InternetAddress("mail@companyxyz.com", "Company XYZ"));
    

    Source: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html

    0 讨论(0)
提交回复
热议问题