我知道我可以为不同的邮件帐户选择不同的传输代理(不同的 SMTP 服务器)。但是,如何使用本地 SMTP 服务器传递大于 10 MB 的邮件,并使用外部服务(例如 Google SMTP 服务器)传递较小的邮件?
是否有基于消息大小的传输策略?如何编辑它们?
[更多信息]
我之所以要这样做,是因为我用于电子邮件传递的外部电子邮件提供商将发送邮件的大小限制为每封邮件的最大大小为 10 MB,因此我想使用我自己的 SMTP 服务器发送这些大邮件,而所有其他邮件则使用外部服务。
答案1
一种方法是使用 ClamAV 过滤器。以通常的方式扫描出站邮件,例如
smtpd_milters = unix:/var/run/clamav/clamav-milter
milter_default_action = accept
在 milter 配置中,设置
MaxFileSize 10M
AddHeader Replace
如果邮件过滤程序拒绝该邮件,则处理将继续。但邮件X-Virus
头会有所不同。然后,您可以使用此邮件头(例如,在 中header_checks
)让 postfix 进行相应的路由。
并非完全在后缀内,因此其他人可能会有更清晰的答案。