设置“邮件暂存/排队”服务器

设置“邮件暂存/排队”服务器

在澳大利亚,我们通过生锈的锡罐连接到互联网,偶尔会因为流浪考拉玩弄线路而导致数据包丢失。

至少,这就是它感觉就像大多数时候一样。

我在一家中型企业(100 多名员工)工作,我们需要频繁地向企业的各个部门发送邮件。

每个业务部门都有自己的“新闻通讯”和更新等。

他们有相当大的邮件列表以及自定义列表,所有这些都通过 SMTP 直接从数据库发送到交换服务器;并且通常他们会发送附件(我正在研究一种简单易行的方法来托管它)。但即使没有附件,它也会占用我们的邮件服务器至少一个小时。

这会延迟电子邮件,从而对其他不相关的系统或时间关键任务造成压力,导致服务台工作量增加,总体上增加了小型 IT 团队(我们 2 人)本已很高的压力水平。

目前管理该问题的方法是将邮件延迟到下班时间。我认为这不是一个好的长期解决方案,也不是一项可以严格执行的政策;因此,时不时会有落后者,他们要么不知道,要么出于某种原因,他们的信息“非常重要”,但通常不是那么紧迫。

现在来回答这个问题:

我基本上是一个 Linux 新手,但我有一个解决方案的想法。

鉴于此问题,我想知道是否有办法设置“邮件排队”服务器。我正在考虑使用具有某种“服务质量”控制的 Linux VM,这样我就可以限制邮件服务器不断使用的带宽量,这样它就不会被淹没,并继续让其他服务运行,从而降低我们的压力水平 ;)。

例如:

  • 4000 封电子邮件从数据库转至“邮件暂存”Linux VM 服务器
  • 邮件登台服务器转发这些电子邮件,比如每分钟向我们的交换服务器发送 15 封电子邮件,或者为服务器设置“最大传出带宽 kb”。

最终我理解“我们需要更大的管道”,但基本上,目前的预算无法承受。

ServerFault,这可能吗?

编辑:Zoredache 询问“我们为什么不直接从分发服务器发送电子邮件”

不幸的是,事情并没有那么简单。'分发服务器'实际上是托管在 filemaker 服务器上的 filemaker pro 数据库,其中有一个客户端插件允许它发送电子邮件,本质上就像精简版的邮件客户端一样。

是的,我知道这不是最佳的。

第二次编辑:有人可以给这个“filemaker”加上标签吗?这是一个新标签,因此我无法创建它:P

答案1

有一种快速简单的方法可以做到这一点。我将向您展示 Postfix 方法:

  1. 匹配批量邮件(通过标题/正则表达式等...)并让它们始终处于 HOLD 状态。无论它们何时发送。

    /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    

    在 /etc/postfix/header_checks 中:

    /^Custom-Mail-Header: true/ HOLD Delayed until out of hours
    
  2. 然后在非工作时间(你可以在 crontab 中以任何你喜欢的方式定义它)你可以使用

    15 20-23 * * * /usr/sbin/postsuper -H 全部

这样将在每天的 20:15、21:15、22:15 和 23:15 发布保留的邮件。

在适当的情况下更正路径和 crontab 时间。

答案2

根据路由器的质量,您可能能够对某些 IP 的 SMTP 端口应用 QoS。

我已经很久没有使用过 Qos 了,但从记忆中,你可以在路由器级别为邮件服务器的 IP 地址在端口 25 上分配低 QoS。

当然,这会降低每个人的 QoS,但如果您有第二台邮件服务器仅用于发送大量邮件,那么您可以使用它来发送邮件并降低其 IP 地址的 QoS,然后使用普通邮件服务器的每个人仍然可以传输。

不过,这与 Zoredache 的评论一致 - 这将直接从第二个邮箱发送邮件。当邮箱可以自行发送邮件时,重新发送就没有什么意义了……

答案3

您没有指定消息的收件人是谁。

如果它们来自企业外部,且消息不是针对每个收件人定制的,那么邮件列表提供商可能是一种廉价的替代方案。

这样做的好处是,您不需要占用带宽或处理通过 Exchange 基础设施传输消息的负载;您只需发送一份副本,然后场外的邮件列表软件就会将其发送给 4000 名收件人。

从安全角度来看,邮件列表软件通常可以配置授权地址或可以实施审核方法,允许在邮件发送之前进行外部控制或审查。

相关内容