使用hMailServer测试从应用程序发送的电子邮件

时间:2018-10-05 09:42:38

标签: email testing hmail-server

我有一个Java Webapp,可以在许多不同的情况下向客户端用户发送电子邮件通知。邮件的内容,时间表等由系统的管理员用户确定。

我已将应用程序指向测试环境中的本地hMailServer实例,现在我想要对其进行配置,以便将其接收的所有电子邮件转发到一组电子邮件地址,并阻止其发送给真实的收件人。

由于我已经进行了设置,以便管理员用户可以在将电子邮件转入生产环境之前对其电子邮件进行测试,所以最好避免重写任何电子邮件标头(那样用户可以看到该电子邮件将被发送给合适的人。

1 个答案:

答案 0 :(得分:0)

我首先添加了一个更改消息主题的脚本,这在我的第一个规则中被调用。

Sub EditSubject(oMessage)
    oMessage.subject = "[TEST MESSAGE - IGNORE] " & oMessage.subject
    oMessage.save
End Sub

这使以后编写规则的条件变得更加容易,并且如果确实发送了一封电子邮件,它至少会说这是一个测试。

然后,我设置了一个针对实际公司邮件服务器(仅称为SMTPSERVER)的路由。我已经将此设置设置为仅发送到特定地址,以防万一任何事情超出了规则。
首次设置时,我只是设置了域company.com的路由,但似乎这是在我的规则触发之前引发的,并引起了问题。所以最后我将其称为bounce

接下来,我添加了以下规则:

  1. 编辑并转发
    这具有检查电子邮件主题不包含我的[TEST MESSAGE - IGNORE]字符串的条件,这可以确保我们不会在新转发的邮件上触发此规则。
    然后触发以下操作:

    • 运行功能以调用上面的EditSubject脚本
    • 转发电子邮件(根据您要定位的每个地址重复多次),
    • 删除电子邮件
    • 停止规则处理
      最后2个命令停止了原始消息的任何进一步处理。
  2. 重新路由
    这具有检查电子邮件主题是否包含[TEST MESSAGE - IGNORE]的条件,因此我们仅对转发的邮件运行此规则。
    它会触发使用路由发送操作,并以bounce路由为目标。

最终结果是,只要我的管理员用户之一在测试中的应用上设置了新电子邮件,就会将其发送到此hMailServer中继。
邮件服务器编辑主题以包括“ test”前缀,在其队列中创建副本以转发给我设置的收件人,然后删除原始副本。
拾取新副本并将其(通过路线)传递到实际的公司邮件服务器并交付。

您最终收到的电子邮件将在Outlook中显示,其中的“收件人”,“抄送”等均显示原始收件人。