基本功能实现篇
一、部署前基本知识了解
a)已有DNS服务器并在映射到邮件服务器的域名配置文件中进行A记录和MX记录的设置
列如:
@ IN MX 5 mail.ltest.com.
mail IN A 192.168.1.2
b)邮件基本维护命令mailq 查看邮件队列中的邮件 sendmail –q对邮件队列进行再一次处理发送
二、组件配置及部署(发送功能配置):
第一步:安装sendmail-8.12.10-1.i386.rpm安装包
默认系统应已安装改程序包
我们可使用 rpm -e -nodeps sendmail-8.12.10进行卸载程序后再次安装该安装包
rpm -ivh sendmail-8.12.10-1.i386.rpm
第二步:配置相关参数
cd /etc/mail
a)设置mail的服务地址
vi sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
//修改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
b)设置smtp用户认证方式
# vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改为
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改LOCAL_DOMAIN(`localhost.domain')dnl 为sdlp.com域名
LOCAL_DOMAIN(`sdlp.com')dnl
c)设置提供邮件服务的域名
# vi /etc/mail/local-host-names
//添加邮件服务器提供邮件服务的域名
sdlp.com
第三步:修改完主配置文件sendmail.mc后生产新的sendmail.cf文件
m4 sendmail.mc > sendmail.cf
报错信息:sendmail.mc:10: m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory
这是因为没有安装sendmai-cf这个包
第四步:安装该程序包
rpm -ivh sendmail-cf-8.12.10-1.i386.rpm
第五步:生成sendmail配置文件
m4 sendmail.mc > sendmail.cf
第六步:重启服务
service sendmail start
报错如下:
Jan 12 01:21:19 localhost sendmail[22422]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 39: unknown
configuration line "n"
Jan 12 01:21:19 localhost sendmail[22427]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 39: unknown
configuration line "n"
第六步:怀疑以下两行有空格导致修改sendmail.mc 文件
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
删除行前的空格后保存退出。
第七步:重启sendmail服务后
查看日志 tail -f /var/log/maillog 确认系统正常启动
三、pop3服务器部署(收邮件功能)
相关组件安装:
1、 确认安装组件是否已经收集完整:
Perl-dbi-1.52-1.fc6.i386.rpm
Mysql-5.0.22-2.1.i386.rpm
Dovecot-1.0.-1.2.rc15.el5.i386.rpm
2、 配置dovecot
a) 在/etc目录下修改配置文件dovecot.conf
b) 设置access配置文件允许邮件中继
192.168.163.0 RELAY
#设置允许该域内邮件转发
c) 重新生成配置文件access.db
makemap hash access.db
d) 重启邮件服务
Service sendmail restart
3、 我们现在测试邮件服务器是否正常工作:
登录邮件系统
telnet sdlp.com 25
返回如下信息:
Trying 192.168.163.111...
Connected to sdlp.com (192.168.163.111).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.12.10; Wed, 1 Feb 2012 01:17:47 -0800
填写发信人:
mail from:red@sdlp.com
填写收信人:
rcpt to:test@sdlp.com
填写邮件正文:
data
this is a test mail.
以句.结束
从日志查看信件是否可以正常发送
tail -f /var/log/maillog
Feb 1 01:12:41 localhost sendmail[12276]: q119BhTP012276: Authentication-Warning: localhost.localdomain: sdlp.com [192.168.163.111] didn't use HELO protocol
Feb 1 01:13:23 localhost sendmail[12276]: q119BhTP012276: from=red@sdlp.com, size=25, class=0, nrcpts=1, msgid=<201202010913.q119BhTP012276@localhost.localdomain>, proto=SMTP, daemon=MTA, relay=sdlp.com [192.168.163.111]
Feb 1 01:13:23 localhost sendmail[12331]: q119BhTP012276: to=test@sdlp.com, ctladdr=red@sdlp.com (501/501), delay=00:00:21, xdelay=00:00:00, mailer=local, pri=30437, dsn=2.0.0, stat=Sent