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