【小蜗牛论断之作,欢迎大家指正
 
我们很容易实现让sendmail接收多个域名的邮件,但我作出“Sendmail无法真正实现多域名支持”论断,依据如下:
 
(1)Sendmail想要实现AUTH(SMTP)验证,则“必须”使用saslauthd:
[root@pps mail]# cat /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
 
在/etc/mail/sendmail.mc里说sendmail“必须”使用saslauthd进行SMTP(AUTH)验证:
"Please remember that saslauthd needs to be running for AUTH."
 
(2)而saslauthd“必须”使用pam认证机制
[root@pps mail]# cat /etc/sysconfig/saslauthd
...
MECH=pam
...
 
当然我们可以修改MECH机制,这里说“ 必须”使用pam,是因为RHEL5系统其它好多重要的验证都是通过pam机制验证的,看看/etc/pam.d目录里的文件及配置,你还敢动pam一根毫毛吗?
 
(3)我们除了使用system-auth之外,还能做些什么呢?难道我们自己去开发一个验证模块?
[root@pps mail]# cat /etc/pam.d/smtp
#%PAM-1.0
auth       include      system-auth
account    include      system-auth

好,说道这里,估计大家也差不多明白sendmail为何不能实现真正的多域名了:)
现在有两个用户,用户名相同,但域名不相同:
[email]snail@hoho.com[/email][email]snail@honolgy.com[/email]
 
RHEL5系统只能有一个叫"snail"用户,在SMTP验证时,无论你是用snail、 [email]snail@hoho.com[/email]或者 [email]snail@honology.com[/email],甚至你用 [email]snail@aaaaaaa.com[/email]作为用户名,系统都会自动认为是snail用户登陆,如果用户名中有"@",只要"@"前面的用户名对了,后面输入的密码对了,那就认证成功!
 
因此,使用sendmail作为MTA,想要实现 [email]snail@hoho.com[/email][email]snail@honolgy.com[/email] 自使用自己的密码进行SMTP验证是“不可能”的!
 
大家都“喜欢”SMTP验证密码和POP3/IMAP4密码一样,采用sendmail作为MTA在SMTP验证阶段都无法实现多域名支持了,即使POP3/IMAP4实现了支持多域名,那结果也是“费心不讨好”的!
 
------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!