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