在java邮件会话中重写收件人地址

时间:2013-12-03 12:58:45

标签: java email javamail

应用程序在Jboss服务器上运行,并使用JNDI获取电子邮件会话。 我想要做的是发送电子邮件到不同的地址,而不是传递给电子邮件api。

应用程序正在传递收件人电子邮件地址,如:

PREFIX_email@example.com

我想在发送消息之前删除PREFIX_。优选的解决方案需要尽可能透明。

这种情况有没有现成的解决方案? 什么是最好的处理方式?

2 个答案:

答案 0 :(得分:1)

如果您可以更改会话属性以将电子邮件重定向到另一台服务器,则有三种选择:

  1. 配置其他服务器将所有邮件转储到单个INBOX中, 然后编写一个JavaMail程序来从INBOX中获取消息, 修改电子邮件地址,并将修改后的消息发送给 真正的SMTP服务器。

  2. 写一个“假的”SMTP服务器接受该消息,重写电子邮件地址, 并将邮件发送到真正的SMTP服务器。您可以使用JavaMail来帮助解决这个问题。

  3. 配置SMTP服务器为您执行地址重写 转发邮件之前。 sendmail可以肯定这样做,我不了解别人。

答案 1 :(得分:1)

如果您需要开发目的,我可以为您推荐一个很好的解决方案来模拟javax.mail.Session

github项目 javaMail extension 添加文件传输,允许:

  • text格式将邮件保存到文件而不是发送
  • mbox格式将邮件保存到文件而不是发送
  • 添加日志信息而不是发送电子邮件