加载中…
个人资料
chifeng
chifeng
  • 博客等级:
  • 博客积分:0
  • 博客访问:25,569
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Relay MTA

(2007-01-26 23:14:48)
分类: Mail System.
MTA

说一点点想法,关于MTA的。关于MX服务器,应该不用废话,大家都知道可以设置一个权值,决定那台机器的优先级。
而对于SMTP服务器,却没有这样的做法,目前smtp发信的时候,如果投递不出去,则会根据回复不同的代码4xx,5xx来决定重试或者直接放弃。这个时候则可以设计出来这样一个发信集群,假设有3组smtp服务器a,b,c。

a: 是一组主服务器,可以称为master。
b: 一组辅服务器,可以称为slave0。
c: 一组辅服务器,可以称为slave1。

规则:所有的发信都走a服务器,如果不能正常投递,则将信转投给slave0服务器组,如果slave0仍然不能投递成功则转发给slave1继续投递。只有在slave1上仍然不能投递时,则放弃并记录相应的log。

说明:整个投递过程类似MX收信收那样,是带有优先级的,这样便可以增加投递邮件的成功率。又能尽可能快的将邮件投递出去。如果采取频率限制的办法,则不能保证邮件被尽快的投递出去,只能保证邮件的投递成功率。当然这两者结合使用则会效果更好,比如对某个域的投递速率小于一定的数值后,便自动把邮件转给slave去投递。

难点:目前并没有一个MTA能够做到去判断这封信投递失败,然后转发给另外一台服务器。所以可能需要开发一个MTA或者修改一下MTA来使先邮件投递失败后所走的路由。

实现:a,b,c的实现。我们可以用一台服务器,30个IP地址,起30个虚拟机,abc三组分别10台虚拟机,容易控制,并且成本也低。(我已经用FreeBSD的Jail进行过测试)

解决的问题:可以解决的问题,IP黑名单/频率限制/单个IP的收信限制。该方案是为了更快的实时的发出邮件。方便维护,因为所有不成功的日志最终都会在优先级最低的那台服务器上,之前的转发服务器的投递日志都是成功的。

结论:我们真的需要一个这样的Relay MTA。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
前一篇:年会
后一篇:跑步
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    < 前一篇年会
    后一篇 >跑步
      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有