我有一个 Java webapp,可以在一堆不同的场景中向客户端用户发送电子邮件通知。邮件的内容、日程等由系统的管理员用户决定。
我已将应用程序指向我的测试环境中的本地 hMailServer 实例,现在我想对其进行配置,以便它接收到的所有电子邮件都转发到一组电子邮件地址并阻止发送给真正的收件人。
由于我正在设置它,以便管理员用户可以在我们将它们投入生产之前测试他们的电子邮件,如果我可以避免重写任何电子邮件标题(这样用户可以看到电子邮件会被发送给合适的人)。
我有一个 Java webapp,可以在一堆不同的场景中向客户端用户发送电子邮件通知。邮件的内容、日程等由系统的管理员用户决定。
我已将应用程序指向我的测试环境中的本地 hMailServer 实例,现在我想对其进行配置,以便它接收到的所有电子邮件都转发到一组电子邮件地址并阻止发送给真正的收件人。
由于我正在设置它,以便管理员用户可以在我们将它们投入生产之前测试他们的电子邮件,如果我可以避免重写任何电子邮件标题(这样用户可以看到电子邮件会被发送给合适的人)。
我首先添加了一个更改消息主题的脚本,这在我的第一条规则中被调用。
Sub EditSubject(oMessage)
oMessage.subject = "[TEST MESSAGE - IGNORE] " & oMessage.subject
oMessage.save
End Sub
这使得以后编写规则的条件变得更容易,如果确实发送了一封电子邮件,它至少会说这是一个测试。
然后我设置了一个针对实际公司邮件服务器(仅称为 SMTPSERVER)的路由。我已将此设置为仅发送到特定地址,以防万一任何事情超出规则。
当我第一次设置它时,我只是用 domain 设置路由company.com
,但似乎这是在我的规则之前触发并导致问题。所以最后我只是调用了它bounce
。
接下来我添加了以下规则:
编辑和转发
这有一个条件是检查电子邮件主题不包含我的[TEST MESSAGE - IGNORE]
字符串,这确保我们不会在新转发的邮件上触发此规则。
然后触发以下动作:
Reroute
这有一个检查电子邮件主题 DOES contains 的条件[TEST MESSAGE - IGNORE]
,因此我们只对转发的邮件运行此规则。
它触发使用路由操作发送并以路由为目标bounce
。
最终结果是,每当我的一个管理员用户在测试中的应用程序上设置新电子邮件时,它将被发送到这个 hMailServer 中继。
邮件服务器编辑主题以包含“test”前缀,在其队列中创建副本以转发给我设置的收件人,然后丢弃原件。
新副本被拾取并(通过路由)传递到实际的公司邮件服务器并交付。
您最后发出的电子邮件在 Outlook 中显示,收件人、抄送等都显示原始收件人。