一.锲子
自建发件服务器其实是个比较蛋疼的工作,怎么说?因为你会碰到各种奇葩的问题,比如QQ邮箱迷一样的单IP发件频率限制,没办法咯,遇到问题就得解决,所以简单粗暴,你既然限制频率那我就IP换着发
二.解
exim实在是强大,只是配置太过复杂_(:з」∠)_,还好这个方面有前人带路,在CP和DA论坛以及Serverfault上都有类似的帖子,地址在下方,有兴趣的可以去看看
http://serverfault.com/questions/355313/exim4-configuration-to-use-several-external-ip-for-mail-sending
https://forums.cpanel.net/threads/send-email-using-a-random-ip.307012/
https://forum.directadmin.com/archive/index.php/t-36468.html
http://reqad.com/how-to-send-mail-from-multiple-ips-in-exim.html
我个人看了一下,有两种方法比较推荐,一种是使用perl来随机ip,一种是使用exim的函数来实现列表随机
①.Perl法
在exim.conf中的添加perl_startup = do '/etc/exim.pl' 位置位于配置文件开头部分
然后修改exim.pl
1 2 3 4 |
sub randinet { @inet = ("x.x.x.1", "x.x.x.2", "x.x.x.3", "x.x.x.4"); return $inet[int rand($#inet+1)]; } |
接着在exim.conf的发件remote_smtp部分修改interface为
1 |
interface = "${perl{randinet}}" |
然后重启exim就可以了
②.列表法
列表其实有两种,一个是真随机,一个是给你的smtp域名一一对应不同的IP,后者主要可以拿来给卖独立IP空间的来用
1.全随机的
首先我们需要创建列表
1 2 3 4 |
echo "1: xxx.xxx.xxx.1 2: xxx.xxx.xxx.2 3: xxx.xxx.xxx.3 4: xxx.xxx.xxx.4">/etc/exim/ips.txt |
1 |
interface = "${lookup {${randint:5}} lsearch {/etc/exim/ips.txt}}" |
1 2 3 |
local_interfaces = a.a.a.a : b.b.b.b : c.c.c.c : d.d.d.d smtp_active_hostname = ${lookup{$interface_address}lsearch{/etc/virtual/smtp_active_hostnames}{$value}} smtp_banner = "$smtp_active_hostname ESMTP $tod_full" |
1 2 |
interface = "${lookup{$sender_address_domain}lsearch{/etc/virtual/domainips}{$value}}" helo_data = "mail.$sender_address_domain" |
三.结
Senraの小窝原创文章,转载请注明来自:Exim实现多IP随机发件
近期评论