JavaMail发件人显示名称配置求助:如何实现Stack Overflow<邮箱>格式
如何在JavaMail中配置发件人显示名称
嘿,其实你写的代码里已经藏着实现这个需求的关键啦!想要实现「Stack Overflow do-not-reply@stackoverflow.email」这种显示名称+邮箱地址的格式,只需要调整你代码里msg.setFrom()方法的参数就行。
核心原理
JavaMail的InternetAddress类有一个重载构造方法:InternetAddress(String address, String personal),其中:
- 第一个参数
address是你的发件人邮箱地址 - 第二个参数
personal就是要显示的发件人名称
你当前代码里的msg.setFrom(new InternetAddress(from, "NoReply"));已经在使用这个方法了,这里的"NoReply"就是显示名称,只需要把它替换成你想要的名称(比如"Stack Overflow"),同时确保邮箱地址正确,就能实现你要的效果。
修改后的代码示例
把发件人设置那一行改成这样:
msg.setFrom(new InternetAddress("do-not-reply@stackoverflow.email", "Stack Overflow"));
如果你的显示名称包含中文等非ASCII字符,为了避免乱码,建议指定编码格式,使用另一个重载构造方法:
msg.setFrom(new InternetAddress(from, "我的自定义发件人名称", "UTF-8"));
额外注意事项
- 你使用的Outlook SMTP服务器(
smtp-mail.outlook.com)完全支持这种显示名称配置,不需要额外调整服务器参数 - 确保
Authenticator里的用户名和密码是对应发件人邮箱的正确凭据,不然邮件发送会失败
内容的提问来源于stack exchange,提问作者Rabin
相关产品推荐
相关产品推荐

