我試圖通過我的Java郵件應用程序向我的朋友發送郵件。我可以成功完成,但郵箱中的收件人列顯示的是完整的電子郵件地址,而不是發件人的姓名。我嘗試更改各種參數,但郵箱仍會顯示完整的電子郵件地址,而不是發件人的名稱。顯示的是Java郵件發件人的地址而不是他的名字
使用此方法發送的消息:
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, "[email protected]", "mygmailpassword");
transport.sendMessage(simpleMessage, simpleMessage.getAllRecipients());
transport.close();
}
catch(MessagingException e){
e.printStackTrace();
}
}
我調用此方法爲:
public static void main(String[] args) {
MailSender mailer=new MailSender();
mailer.send("[email protected]");
}
雖然這在理論上回答這個問題,這是不是真的一個很好的答案,因爲它不教OP。相反,它給出了一個沒有解釋的替代方案這通常會導致OP沒有學習,並且在發生類似問題時回到問一個新問題。你介意添加一些解釋嗎? – Vogel612