作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
举个例子可以更好地解释我的问题:
如果“Mark Jones”拥有 xyz@gmail.com 并通过传统方法(撰写)向某人发送邮件,则收件人会收到一封标题为“Mark Jones”的邮件,后跟主题。但通过 Gmail SMTP 发送的同一封邮件的标题为“xyz”,后跟主题。
我正在使用 javax.mail 库作为 SMTP。即使我通过 Java SMTP 发送,我也希望显示“Mark Jones”而不是“xyz”。有什么办法可以达到这个目的吗?
以下是我当前使用的代码:
System.setProperty("java.net.preferIPv4Stack" , "true");
Properties props = new Properties();
props.put("mail.smtps.user", "xyz@gmail.com");
props.put("mail.smtps.host", "smtp.gmail.com");
props.put("mail.smtps.port", "465");
props.put("mail.smtps.starttls.enable", "true");
props.put("mail.smtps.debug", "true");
props.put("mail.smtps.auth", "true");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xyz@gmail.com", "password");
}
});
MimeMessage msg = new MimeMessage(session);
try {
msg.setSubject(this.subject);
msg.setFrom(new InternetAddress("xyz@gmail.com"));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(this.to));
msg.setText(this.body);
try (Transport transport = session.getTransport("smtps")) {
transport.connect("smtp.gmail.com", Integer.valueOf("465"), "Mark Jones", "password");
transport.sendMessage(msg, msg.getAllRecipients());
}
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
最佳答案
如Bill Shannon建议,以下代码可以解决问题
try{
msg.setFrom(new InternetAddress("xyz@gmail.com","Mark Jones"));
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
关于java - 如何在 Gmail SMTP 中指定显示名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504477/
我是一名优秀的程序员,十分优秀!