ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用外网的sendmail做中继接受邮件到内网

用外网的sendmail做中继接受邮件到内网

原创 Linux操作系统 作者:charles_zx 时间:2011-10-28 09:46:37 0 删除 编辑
外网服务器比如是out.com。可以正常接收发到out.com的邮件。
现在想要把该服务器收到的邮件转到内网的两个服务器里,类似于负载均衡。

内网的两个服务器IP:192.168.10.1,192.168.10.2。

外网服务器设置:

1) /etc/mail/virtusertable文件内容如下:
  @out.com      %1@in.com

把本来收到的邮件统统转到in.com。

2)  /etc/mail/mailertable文件内容如下:
  in.com             esmtp:[192.168.10.1],[192.168.10.2]

把发到in.com的邮件随机转发给内网的两台机器。使用IP地址,需要方括号。

# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
# service sendmail restart

说明:
先把收到的邮件改成in.com的时候,因为不再是本机域名,所以要转发。
而转发时会用到mailertable文件。
mailertable文件里面定义把发到in.com的邮件转发到内网的两个服务器。

前提:外网服务器的sendmail使用virtusertable和mailertable特征。

内网服务器设置:两台设置是一样的。

1) /etc/mail/local-host-names文件内容如下:
  in.com
 
  只有一行,接受in.com域的邮件。

2) /etc/mail/virtusertable文件内容如下:
   @1n.com      root

  把所有收到的邮件都当作root用户。 这里应该要根据实际情况自行修改。

# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
# service sendmail restart

说明:
发到内网的邮件的的部分已经被改成了xxx@in.com,
所以要根据实际情况把这些邮件分配给实际的用户。
应该和外网修改前的virtusertable文件类似,
除了域名不一样以外,out.com 变成了in.com。

设置完成。在发邮件给xxx@out.com,会按照1:1的比例把邮件转给内网的某个服务器上。


注意:
不要把内网的服务器的网关设置为外网服务器的IP。
否则外网转发邮件时会报错: config error: mail loops back to me (MX problem?)
这个问题搞了一天才明白,唉。。。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/378235/viewspace-709828/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 第166回 概率
请登录后发表评论 登录
全部评论

注册时间:2010-05-27

  • 博文量
    177
  • 访问量
    123958