Nelo Angelo Nelo Angelo - 2 months ago 13
Java Question

Java mail sender's address displayed rather than his name

I am trying to send mail to my friends through my Java Mail application. I am able to do it successfully however the receiver's column in the mailbox shows the complete email address rather than the name of the sender. I tried changing various parameters but still the mailbox would show the full e-mail address rather than the name of the sender.

using this method to send the message:

public void send(String key){
String to=key;
String from="mygmailid";
String subject="wassp";
String text="Hello";
Properties props=new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.user", "myname");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session mailSession=Session.getDefaultInstance(props);
Message simpleMessage=new MimeMessage(mailSession);

InternetAddress fromAddress=null;
InternetAddress toAddress=null;

try{
fromAddress=new InternetAddress(from);
toAddress=new InternetAddress(to);
}
catch(AddressException e){
e.printStackTrace();
}

try{
simpleMessage.setFrom(fromAddress);
simpleMessage.setRecipient(RecipientType.TO,toAddress);
simpleMessage.setSubject(subject);
simpleMessage.setText(text);

transport.connect("smtp.gmail.com",465, "myid@gmail.com", "mygmailpassword");
transport.sendMessage(simpleMessage, simpleMessage.getAllRecipients());
transport.close();

}
catch(MessagingException e){
e.printStackTrace();
}
}


I am calling this method as:

public static void main(String[] args) {
MailSender mailer=new MailSender();
mailer.send("friendmail@gmail.com");
}

Answer

You can set a name in the InternetAddress using

new InternetAddress("mail@example.com", "Your Name");