Pergunta

Atualmente, nosso aplicativo usa um javax.mail para enviar email, usando javax.mail.mailmessage. Definimos os cabeçalhos do e -mail desta maneira:

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

Isso funciona muito bem, mas gostaríamos de tornar a seção "da" um pouco mais fácil de usar. Atualmente, alguém que recebe um e -mail verá "Mail@companyxyz.com" na seção "da" da caixa de entrada. Em vez disso, gostaríamos que eles vissem "Companhia XYZ" lá. Eu acho que isso provavelmente é feito com o método addHeader (), mas não tenho certeza de qual seria o nome do cabeçalho.

Foi útil?

Solução

OK, ler a documentação sobre todas as aulas envolvidas teria sido útil. A sintaxe correta deve ser

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

Fonte: https://javamail.java.net/nonav/docs/api/javax/mail/internet/internetaddress.html

Outras dicas

Se você deseja armazenar o email + o nome em uma string (mais fácil do que manter duas string):

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

Caso eu usei texto localizado com caracteres especiais como u00fa, tive problemas com a codificação de alias de endereço de e -mail para alguns clientes POP3 se eu tivesse usado apenas

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

Pode ser resolvido por endereço de e -mail e alias separados por 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#internetddress(java.lang.string ,%20java.lang.string.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);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top