Вопрос

В настоящее время наше приложение использует javax.mail для отправки электронной почты, используя javax.mail.MailMessage.Мы устанавливаем заголовки From электронного письма следующим образом:

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

Это работает нормально, но мы хотели бы сделать раздел «От» немного более удобным для пользователя.В настоящее время получатель электронного письма увидит адрес «mail@companyxyz.com» в разделе «От» своего почтового ящика.Вместо этого мы бы хотели, чтобы они увидели там «Компанию XYZ».Я полагаю, что это, вероятно, делается с помощью метода addHeader(), но я не уверен, каким будет имя заголовка.

Это было полезно?

Решение

Хорошо, было бы полезно прочитать документацию обо ВСЕХ задействованных классах.Правильный синтаксис должен быть

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

Источник: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html

Другие советы

Если вы хотите сохранить адрес электронной почты + имя в одной строке (проще, чем хранить две строки):

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

В случае, когда я использовал локализованный текст со специальными символами, такими как \u00FA, у меня возникали проблемы с кодированием псевдонима адреса электронной почты для некоторых клиентов pop3, если бы я использовал только

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

Эту проблему можно решить с помощью отдельного адреса электронной почты и псевдонима, вызвав:

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

ссылка: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String,%20java.lang.String,%20java.lang.String)

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top