原标题:用自己的MTA给本地账号发信的smtp认证问题[问题描述已修改] 解决方法请看第4页>> 感谢:思一克、paulwang、rhinofly、dennis2、xiaohua、tonygong、hzqbbc等的不吝指导!你们的耐心回贴解决了我很多问题,也教会了我很多¥#%%!! 原问题: 看了很多这里的smtp认证问题,但是还是有些疑惑,请大家指教. 这里我的域名 ==> mydomain.com 我的用户名 ==> jackieyuan 我在以下的设置环境下,通过我的MTA(qmail 1.03 patched) 向其他 MTA 转信的过程中 (例如发信到 @hotmail.com ) 都可以顺利通过 SMTP Authentication 后转发。 即 引用: Outlook 的 jackieyuan@mydomain.com 账户 ---> smtp.mydomain.com (要smtp 认证) ---> user@hotmail.com 或者 jackieyuan@mydomain.com 但是对于通过自己的MTA自己给自己本地用户发送的邮件, MTA就不要求你进行smtp认证了 引用: Outlook 的 jackieyuan@mydomain.com 账户 ---> smtp.mydomain.com (不要smtp 认证) ---> jackieyuan@mydomain.com 当然此时对其他MTA 的发送(比如user@hotmail.com) 是失败的。 请问如何设置: 1. 如何在用自己的MTA向本地用户发送邮件的时候,也要求smtp认证? 或者说为什么在使用新浪自己的MTA的时候(是指smtp 服务器 smtp.sina.com.cn)向新浪的其他用户发信时,没有在“我的服务器需要验证”处打勾时,服务器拒绝传送。[已修改此问题描述] 2.[为了使问题单一化,删除此问题]如何设置mail server的正确DNS和MX记录使得类似于sina.com的服务器可以顺利通过我的 DNS auth. 谢谢! 我已经测试 引用: 1. 如果保持 rcpthosts清空,任何非dalouis.com的邮件服务器不能向dalouis.com发送邮件. 2. 如果删除 rcpthosts , /var/log/qmail/smtpd/current 就会不停报错. 代码: tail -f current @4000000040c13fe5037bb74c No /var/qmail/control/rcpthosts! @4000000040c13fe5037d0354 Refusing to start SMTP listener because it'll create an open relay @4000000040c13fe604dfcb8c No /var/qmail/control/rcpthosts! @4000000040c13fe604e12b1c Refusing to start SMTP listener because it'll create an open relay @4000000040c13fe706a36104 No /var/qmail/control/rcpthosts! @4000000040c13fe706a49984 Refusing to start SMTP listener because it'll create an open relay 我主机的一个email address: jackieyuan@mydomain.com 我的另外一个非主机的 email address: user@hotmail.com 安装环境. 引用: RH9.0+ qmail + vpopmail + qmail-smtpd-auth-0.4.3 + qmailscaner + Spamassassin + clamav-0.70 客户端引用: Outlook Express 账号里面 username:jackieyuan 我的服务器需要认证 已打勾 /etc/tcp.smtp 文件:引用: # Qmail-Scanner at all for mail from 127.0.0.1 127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue" # Use Qmail-Scanner with SpamAssassin on any mail from the rest of the world :allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" rcpthosts 文件引用: mydomain.com qmail-smtpd 的run 文件:引用: #!/bin/sh export PATH QMAILQUEUE TH=$PATH:/usr/local/bin:/var/qmail/bin QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export PATH QMAILQUEUE QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` LOCAL=`head -1 /var/qmail/control/me` if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in echo /var/qmail/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail/control/rcpthosts ]; then echo "No /var/qmail/control/rcpthosts!" echo "Refusing to start SMTP listener because it'll create an open relay" exit 1 fi ##### add the rblsmtpd by using the BLS: sbl-xbl.spamhaus.org ### use uid and gid of vpopmail exec /usr/local/bin/softlimit -m 20000000 /usr/local/bin/tcpserver -H -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u 89 -g 89 0 smtp /usr/local/bin/rblsmtpd -r sbl.spamhaus.org /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true 2>&1