1、确认系统已安装相关软件。 #rpm -aq | grep sasl #rpm -aq | grep imap #rpm -aq | grep sendmail #rpm -aq | grep m4 至少要保证有下列软件 imap-2001a-18.i286.rpm sendmail-8.12.8-4.i386.rpm m4-1.4.1-13.i386.rpm cyrus-sasl-2.1.10-4.i386.rpm cyrus-sasl-md5-2.1.10-4.i386.rpm cyrus-sasl-plain-2.1.10-4.i386.rpm cyrus-sasl-gssapi-2.1.10-4.i386.rpm
2、在DNS服务器上添加相应的MX记录
3、添加本地邮件域名 #vi /etc/mail/local-host-names mydomain.com #service sendmail restart [显示更改后的w类配置] #sendmail -bt ADDRESS TEST MODE(ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > $=w mydomain.com localhost.localdomain localhost [127.0.0.1] //ctrl+d退出
4、使用/etc/mail/access数据库,可以定义MTS允许发送邮件的地址或用户,但使用SASL可以不用定义这
个文件。 access文件定义举例: #vi /etc/mail/access mydomain.com RELAY //允许域内用户发送 10.2.2 RELAY //允许10.2.2.0网段发送 [email protected] RELAY //允许特定邮件地址 username@ RELAY //允许特定用户发送 参数说明: OK 无条件接受或发送 RELAY 允许SMTP代理投递 REJECT 拒绝接受并发送错误消息 DISCARD 丢弃邮件,不发送错误消息 用access文件生成access.db makemap hash access.db < access
5、可以选择在/etc/aliases文件,设定用户别名,邮件列表也是在这个文件中制作 此项文件路径在sendmail.mc文件中的define('ALIAS_FILE','/etc/aliases')dnl语句确定 格式: alias: recipient [,recipieng,...]
6、可以选择使用/etc/mail/userdb文件,改变用户入站或出站地址 格式: 入站地址:maildrop 被改写的入站地址 出站地址:mailname 被改写的出站地址 应用: makemap btree userdb.db < userdb
7、建立虚拟域 mc配置文件中FEATURE('virtusertable','hash -o /etc/mail/virtusertable.db')dnl定义了虚拟域配置
文件位置。 #vi /etc/mail/virtusertable 虚拟域地址 真实地址 #makemap hash virtusertable.db < virtusertable 然后为虚拟域在DNS里添加MX记录 在local-host-names中添加虚拟域 如果未使用SASL,则需要在access文件里添加虚拟域
8、配置Pop3 运行: # ntsysv 在系统服务列表中选中ipop3,选’OK’保存推出 重启xinetd服务,运行: # service xinetd restart 运行netstat命令看smtp和pop3服务是否都已经启动 # netstat -l
9、配置SASL 在sendmail.mc中找到相关的行 A、添加 define(QUEUE_DIR, `/var/spool/mqueue/q*') 启动多邮件队列,获得更好的传输性能,与SASL无关。 另外在/var/spool/mqueue/下创建任意多个队列目录,运行: # cd /var/spool/mqueue # mkdir q1 q2 q3 q4 q5 q6 B、将如下两行的dnl去掉,取消注释。 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 作用是使sendmail不管access文
件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮
件。 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 作用是确
定系统的认证方式。Outlook Express支持的认证方式是LOGIN。 C、给下行加上dnl注释 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 让sendmail可以侦听所有网络设备,
为整个网络提供服务,而不仅仅只对本机提供服务。 D、在smtp的默认端口(25)上进行认证,而不是587端口。这样就强制所有使用该邮件服务器进行邮件转
发的用户在认证后才能发邮件了。 将dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl 改为 DAEMON_OPTIONS(`Port=25, Name=MSA')dnl 最后,运行 # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 用m4重新生成sendmail.cf文件,重新启动sendmail服务。
检验认证是否开启: 可以通过telnet IP 25来验证sendmail服务是否已经正常启动,若登陆成功,则说明sendmail服务已经成
功启动。 # telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]' 220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8; Wed, 12 May 2004 15:57:01 +0800 ehlo localhost 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-AUTH GSSAPI LOGIN PLAIN 250-DELIVERBY 250-HELP quit # 在AUTH后面有LOGIN就基本上可以在OutlookExpress上认证了。 另外使用 sendmail -d0.1 -bv root | grep SASL 出现NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS则可说明SASL已启用。 
|