我有 2 个电子邮件地址,我想将所有邮件从一个电子邮件地址路由(自动转发)到另一个电子邮件地址。不幸的是,我的邮件客户端上的这个功能停止工作了,我想创建一个小型控制台应用程序来检查我的电子邮件并每 10 分钟自动转发一次。我开始使用 Java Mail API 在 Java 中开发控制台应用程序,但我在设置适当的 FROM 标头时遇到了问题。当我设置原始发件人电子邮件地址并尝试发送电子邮件时,SMTP 抛出异常:SMTP mail FROM does not match authenticated user name。它合乎逻辑,因为这样我可以伪造电子邮件地址发件人,但我不希望电子邮件像我发送的那样出现在另一封电子邮件中。出于多种原因需要这样做:更容易阅读当我想回复电子邮件时,我希望能够回复我的原始发件人而不是我自己我已经使用 PHP 在我的网站联系表单上实现了这一点,但我不知道如何在 Java 中做到这一点。我将尝试以更简单的方式解释情况。我提出了 2 封电子邮件:a@a.com和b@b.com现在电子邮件来自c@c.com于a@a.com我想将电子邮件从转发a@a.com到b@b.com,但是当邮件到达b@b.comFROM 标头时,我想看到它来自c@c.com(不是来自a@a.com)我的问题是:这是否可能,如果可能,我如何将标头 FROM 设置为原始发件人。
1 回答

慕码人2483693
TA贡献1860条经验 获得超9个赞
这完全取决于您的邮件服务器是否允许您向 b@b.com 发送邮件而不显示它来自 a@a.com。大多数服务器不允许这样做。
更简单的解决方案是从 a@a.com 的收件箱中读取消息,并使用 Folder.appendMessages 将其附加到 b@b.com 的收件箱中,而不是使用 Transport.sendMessage 重新发送。
添加回答
举报
0/150
提交
取消