如何为集成测试配置 sendmail?

How do I configure sendmail for integration testing?

我有一台CentOS虚拟机,需要配置sendmail进行集成测试。我需要 sendmail 来接受来自任何地方的所有电子邮件,而不进行任何用户验证。我只需要它接受所有传入的有效电子邮件,而不是出于任何原因抱怨或拒绝。并且 sendmail 不应将邮件转发到其他任何地方。

我阅读的所有设置文档都与制作 "working" 服务器有关,而不是 "dummy" 或 "stub" 服务器。

我该如何配置?

谢谢

软件测试环境的Sendmail配置

选择以下修复组合:

sendmail.mc : 将所有外发邮件重定向到 user1

的本地邮箱
define(`SMART_HOST',`local:user1')dnl

sendmail.mc : 将邮件重定向到本地电子邮件域中的所有地址(通常投递到本地邮箱)到 `user1'

的邮箱
define(`MAIL_HUB',`local:user1')dnl

访问 文件:允许从特定 IP 地址中继(接受到非本地电子邮件地址的邮件):

# relay from 192.168.0.1
connect:192.168.0.1   RELAY
# relay from 192.168.1.0/24
connect:192.168.1   RELAY
# relay from 172.32.0.0/16
connect:172.32  RELAY

在大多数测试环境中发布更多测试没有意义 (例如,不检查信封发件人域是否存在)


  1. sendmail.mc必须编译成sendmail.cf
  2. access 文件通常必须编译成 access.db 文件

可能有更多好东西: * 将所有信封收件人存储在消息 headers 中(发给电子邮件 headers 中未提及的多个收件人的消息)