一些发垃圾邮件的软件,这些软件基本上都不会对邮件服务器返回的错误做出任何重试, 而只是简单的在日志里记录发送失败而已。而病毒引发的邮件风暴则更加不会识别邮件服务器返回的错误, 因为这些病毒仅仅是简单的发送邮件,发送时根本不理会服务器的状态。
greylist的设计大体上是基于一种重试的原则,即第一次看到某个IP要想给某个收件人发信, 那么它将简单的返回一个临时错误(4xx),并拒绝此请求,正常的邮件服务器都会在一段时间内(如半小时)重发一次邮件。greylist发现还是刚才同样的ip地址和收件人,认为此ip是来自合法服务器的,予以放行。如果是非正常的邮件,那么或者将永远也不再进行重试,或者会疯狂重试,但由于间隔太近,而遭拒绝。
因此,greylist只要设置一个合适的放行间隔,就可以在很大程度上对这类垃圾邮件有着良好的免疫能力。greylist的一大特点就是不会丢信,正规的邮件服务器认为4xx错误只是临时性、软性的错误,会 隔一段时间重试,因此邮件还是可以投递成功。但greylist的一大缺点即使延迟(delay), 的间隔(postfix默认是1000秒)。对于一些对邮件及时性很强的客户,greylist可能不是一个很好的选择。