在澳大利亚,我们通过生锈的锡罐连接到互联网,这些锡罐偶尔会因为流浪考拉玩线路而丢包。
至少; 这就是大多数时候的感觉。
我在一家中型企业(100 多名员工)工作,我们需要经常为企业的各个部门进行邮寄。
每个业务部门都有自己的“时事通讯”和更新等。
他们有相当大的邮件列表,以及所有通过 SMTP 直接从数据库发送到交换服务器的自定义列表;通常他们会发送附件(我正在研究一种非常简单的托管方式)。但即使没有附件,它也会占用我们的邮件服务器至少一个小时。
这会延迟电子邮件,从而导致其他不相关系统或时间关键任务的压力。这导致帮助台工作增加,这总体上增加了一个小型 IT 团队(我们 2 人)已经很高的压力水平。
当前管理它的方法是将邮件发送延迟到接近工作时间结束。我不认为这是一个好的长期解决方案,而且这也不是一个可以全力执行的政策;所以时不时地会有一个不知道,或者出于某种原因,他们的信息“非常重要”,但通常不是时间紧迫的落后者。
现在的问题:
我几乎是一个 linux 新手,但我有一个解决方案的想法。
鉴于这个问题,我想知道是否有一种方法可以设置“邮件队列”服务器。我正在考虑一个具有某种“服务质量”控制的 linux VM,所以我可以限制我们的邮件服务器不断使用的带宽量,这样它就不会被淹没,并继续拥有其他服务工作,降低我们的压力水平;)。
例如:
- 4000 封电子邮件从数据库转到 'mail staging' linux vm 服务器
- 邮件登台服务器转发这些电子邮件,例如每分钟 15 封电子邮件到我们的交换服务器,或者为服务器设置“最大传出带宽 kb”。
最终我明白“我们需要一个更大的管道”,但基本上,预算目前无法承受。
服务器故障,这可能吗?
编辑:Zoredache 已询问“我们为什么不直接从分发服务器发送电子邮件”
不幸的是,事情没那么简单。“分发服务器”实际上是托管在 filemaker 服务器上的 filemaker pro 数据库,其中有一个客户端插件允许它发送电子邮件,基本上就像缩减邮件客户端一样。
是的,我知道这不是最佳选择。
第二次编辑:有人可以标记这个“文件制作者”吗?这是一个新标签,因此我无法创建它:P
有一种快速简单的方法可以做到这一点。我将向您展示 Postfix 方式:
匹配批量邮件(通过标题/正则表达式......)并让它们一直处于 HOLD 状态。无论何时发送。
/etc/postfix/main.cf:
/etc/postfix/header_checks:
然后在下班时间(你可以在 crontab 中以任何你喜欢的方式定义它)你可以使用
15 20-23 * * * /usr/sbin/postsuper -H ALL
这将在每天 20:15、21:15、22:15 和 23:15 释放邮件。
在适当的地方更正路径和 crontab 时间。
根据路由器的质量,您可能能够在 SMTP 端口上为某些 IP 应用 QoS。
自从我玩 Qos 以来已经有很长时间了,但是根据记忆,您可以在路由器级别为您的邮件服务器的 IP 地址分配端口 25 上的低 QoS。
当然,这会降低每个人的 QoS,但是如果您有第二个邮件服务器,仅用于大量邮件发送,那么您可以使用它来发送邮件并降低其 IP 地址上的 QoS,然后使用普通邮件服务器的每个人仍然可以传输。
这与 Zoredache 评论的内容一致 - 这将直接从第二个盒子发送邮件。当盒子可以自己发送时,重新发送它没有多大意义......
您没有指定邮件的收件人是谁。
如果它们在企业外部并且消息不是针对每个收件人进行定制的,那么邮件列表提供商可能是一个便宜的选择。
这里的好处是您不会占用带宽或处理通过您的 Exchange 基础架构耗尽消息的能力;您发送一份副本,然后邮件列表软件在异地发送给 4000 个收件人。
安全方面,邮件列表软件通常可以配置授权地址,或者可以实施一种审核方法,允许在消息发布之前进行外部控制或审查。