pw.println("to:" + "你我他 <yuhao86717@163.com>"); //指定收件人名 为什么发送邮件成功后收件人的邮箱上显示收信人不是 “你我他”而是“我”
时间: 2024-10-23 20:16:27 浏览: 25
在这个Java代码片段中,`pw.println("to:" + "你我他 <yuhao86717@163.com>");` 是用来设置邮件头的"To"字段,它指定了邮件的收件人。当你看到收件箱中显示的名称不是"你我他"而是"我",那可能是因为两个原因:
1. **默认行为**:一些邮件系统(比如Gmail)会自动截取收件人地址显示在邮件头部。对于 `<yuhao86717@163.com>` 这样的电子邮件地址,它通常只会显示`<yuhao86717@163.com>` 后面的部分,也就是"yuhao86717"作为显示名称,而不是完整的"你我他"。
2. **设置问题**:有可能在发送邮件的过程中,没有正确地配置显示名称(Name)或者邮件系统的预览选项默认显示的是发件人的姓名。检查一下邮件发送设置,确认是否设置了正确的"你我他"作为显示名称。
3. **编码问题**:如果邮件头的编码处理不当,也可能会导致名字被截断或解码错误。
要解决这个问题,可以尝试在发送邮件前明确设置显示名称:
```java
Properties props = new Properties();
props.put("mail.smtp.showname", "你我他");
Session session = Session.getInstance(props);
```
然后在构造MimeMessage时添加:
```java
MimeMessage message = new MimeMessage(session);
message.setRecipient(Message.RecipientType.TO, new InternetAddress("yuhao86717@163.com", "你我他"));
```
这样邮件接收者应该能看到完整的"你我他"作为显示名。
阅读全文