centOS下sendmail短信服务器搭载smtp和pop3认证的配置的方式
1.软件打算
操作系统:centos5.0
我选择centos5,最新的操作系统,不要再用redhat9了,好久没有更新了linux系统编程,企业里用有风险的
。更新换代吧。
以下软件,centos5全部自带,无需另外下载。
短信系统:
sendmail8.13
sendmail-cf-8.13
m4-1.4
pop3认证:dovecot-1.0
smtp认证:
cyrus-sasl-2.1
cyrus-sasl-md5-2.1
cyrus-sasl-plain-2.1
cyrus-sasl-lib-2.1
sasl这儿,我要说一句centos 6.5邮件服务器,网上有人说“sendmail-8.13早已包含cyrus-sasl的功能,所没必要再
安装cyrus-sasl”
大婶姐姐们,没有cyrus-sasl用哪些做认证.....sendmail官方只是说,sendmail的rpm包默认
早已支持了cyrus-sasl认证方法,也就是说,sendmail会在cyrus-sasl的工作目录下手动创建
相关认证配置文件,并窃听25号端口,就不用你去自动自己完善配置文件和窃听端口了。当有
恳求步入25号端口的时侯,sendmail会手动找到/usr/lib/sasl2/Sendmail.conf读取认证方式
。下边我会详尽解释。
2.安装软件
rpm-ivh把里面软件全装上,都在光碟里呢,好装。
3.认证配置
pop3:
网上说更改/etc/dovecot.conf文件,将第17行的:#protocols=imapimapspop3pop3s的#
去除。虽然不用,它默认早已启用了这种服务,除非你只想用dovecot-auth的认证,你可以改
成protocols=none,否则不用改。
这儿要说一句,不要改
dnlDAEMON_OPTIONS(`Port=submission,Name=MSA,M=Ea')dnl
这句话!保持注释状态。
前面那句话,网上很多文章都说把Port=submission,改成Port=25,说是强制所有用户在25端口
上做认证。
我不晓得sendmail先前的版本是怎样样设置smtp认证的。sendmail8.13不用那么设置,这句话
人家sendmail的意思是:取消注释后,一旦当25号端口被重定向或则被屏蔽,或则在25号端口
打不开的情况下linux环境配置,马上使用587备用端口给用户做认证。
原本人家sendmail就早已打开了25端口(Port=smtp了早已),你却在这儿还Port=25,把备用
端口也改成25,这不是让sendmail的sm-client认
证进程和sendmail的主进程抢端口么....
-----------------------------------------------------------
到此为止,保存sendmail.mc
用m4重新生成sendmail.cf文件
#m4/etc/mail/sendmail.mc>/etc/sendmail.cf
启动dovecot进程:
/etc/init.d/dovecotstart
启动saslauthd进程:
/etc/init.d/saslauthdstart
启动sendmail进程:
/etc/init.d/sendmailstart
把这种进程加入到启动脚本中去:
chkconfigdovecoton
chkconfigsaslauthdon
chkconfigsendmailon
ok,所有设置全部完成,可以正常认证和收发短信了。
4.smtp测试方式:
以下sh#表示在shell上输入;C为顾客端输入,S为服务器端返回信息。
sh#telnet
S:220localhost.localdomainESMTPSendmail8.13.8/8.13.8;Sun,18May2008
01:55:03+0800
C:ehlo(不带认证功能的是helo+名子)
S:250-localhost.localdomainHello[172.28.90.9],
pleasedtomeetyou
S:250-ENHANCEDSTATUSCODES
S:250-PIPELINING
S:250-8BITMIME
S:250-SIZE
S:250-DSN
S:250-ETRN
S:250-AUTHGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN
S:250-DELIVERBY
S:250HELP
C:authlogin
S:334VXNlcm5hbWU6
注:{下边先输入username后passwd,二者须要输入encodebase64码,转换方式:
sh#perl-MMIME::Base64-e'printencode_base64("username")'
(注意print前后是单冒号,username处替换成你须要的词组)
}
C:MQ==(这是我的用户名:1)
S:334UGFzc3dvcmQ6
C:MQ==(密码centos 6.5邮件服务器,也是1)
S:2352.0.0OKAuthenticated
C:MAILFROM:(部份服务器设置后,须要真实的邮箱后缀名,具体方式不详)
S:2502.1.0...Senderok
C:RCPTTO:(目标邮箱)
S:2502.1.5...Recipientok
C:DATA
S:354Entermail,endwith"."onalinebyitself
C:〈这里添短信内容〉
C:.