一、电子邮件基本概念
邮件系统角色
MUA(mial user agent):使用的邮件客户端,使用IMAP或POP3协议与服务器通信。
MTA(mial transfer agent):Email的服务器端程序,通过SMTP发送、转发邮件。
MDA(mail deliver(发送) agent):将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描。
MRA(mail receive(接受) agent)负责实现IMAP与POP3协议,与MUA进行交互。
常用MUA:outlook、mac mail、mutt
常用MTA:sendmail、postfix
常用MDA:procmail、dropmail
常用MRA:dovecot
邮件系统使用协议
SMTP(simple mail transfer protocol):传输发送邮件所使用的标准协议,默认端口25。
IMAP(internet message access protocol):接受邮件使用的标准协议之一,默认端口143。
POP3(post office protocol 3):接受邮件使用的标准协议之一,默认端口110。
RHEL5默认采用sendmail做为MTA,RHEL6则采用postfix,Postfix速度比sendmail快三倍,兼容sendmail,更加稳定健壮,配置更加简单灵活,安全性较高。
#配置DNS服务器
1
2
3
|
[root@dns ~]
[root@dns ~]
[root@dns ~]
|
[root@localhost ~]# vi /var/named/chroot/etc/named.conf

[root@localhost ~]# vi /var/named/chroot/var/named/4g.com.zone

[root@localhost ~]# service named restart
客户端测试正反向解析:(DNS要指向虚拟机里的DNS服务器)

二、配置Postfix
1
2
3
4
5
6
7
8
9
|
[root@localhost ~]
myhostname = mail.4g.com
mydomain = 4g.com
myorigin = $myhostname
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain
mynetworks =192.168.1.0 /24 ,127.0.0.0 /8
home_mailbox = Maildir/
|
1
2
3
4
5
|
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1324 /master
tcp 0 0 ::1:25 :::* LISTEN 1324 /master
|
#在模板下创建邮件目录
1
2
|
[root@mail ~]
[root@mail ~]
|
#创建邮件用户
1
2
3
4
|
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
|
#测试发邮件

#查看user2是否收到邮件

三、配置Dovecot
1
2
3
4
5
6
7
8
9
10
11
|
[root@mail ~]
[root@mail ~]
protocols = imap pop3 lmtp
login_trusted_networks =192.168.1.0 /24
[root@mail ~]
mail_location =maildir:~ /Maildir
[root@mail ~]
[root@mail ~]
[root@mail ~]
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1380 /dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1380 /dovecot
|
#测试接收邮件


四、设置SMTP的用户认证
当用户通过SMTP协议向外部邮件域发送邮件时,服务器会要求用户提供用户帐号和口令进行身份认证,只有成功通过身份认证的用户才被允许向外部发送邮件,否则将拒绝发信请求。
目前,比较常用的SMTP认证机制是通过Cyrus SASL包来实现的,Cyrus SASL最大功能是为应用程序提供了认证函数库。应用程序可以通过函数库所提供的功能定义认证方式,并让SASL通过与邮件服务器主机的沟通从而提供认证的功能。
安装如下三个包:
1
2
3
4
|
[root@mail ~]
cyrus-sasl-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
|
#查看postfix是否支持cyrus的sasl认证
1
2
3
|
[root@mail ~]
cyrus
dovecot
|
1
2
|
[root@mail ~]
MECH=shadow
|
1
2
3
4
5
|
[root@mail ~]
[root@mail ~]
[root@mail ~]
0: OK "Success."
|
#postfix主配置文件添加SMTP认证
1
2
3
4
5
|
[root@mail ~]
smtpd_sasl_auth_enable= yes
smtpd_sasl_security_options=noanonymous
mynetworks=127.0.0.1
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
|
#通过命令获取到user1用户和密码加密字符串
1
2
3
4
|
[root@mail ~]
dXNlcjE=
[root@mail ~]
MTIzLmNvbQ==
|


五、常用维护命令
Mailq 或 postqueue -p #查看邮件队列
postfix flush 或 postqueue -f #重新发送队列邮件
postconf #查看当前的有效配置
postconf -n #查看非默认配置
postconf -d #查看默认配置
postconf -e #修改自定义设置,如postconf -e “inet_interfaces = all”
六、安装Extmail
ExtMail是由国内开源组织使用Perl语言开发的一套功能强大的中文Webmail平台,主要包括ExtMail、Extman两个部分的程序套件。Extmail套件用于提供从浏览器登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。
安装及运行ExtMail套件需要用到三个Perl支持软件包:Unix-Syslog、DBI和DBD-MySQL 依次安装这几个Perl软件包,然后将Extmail套件解压释放到Apache服务器的网页文档根目录中,并调整webmail.cf配置文件,最后再修改httpd.conf配置并重启httpd服务即可。
1.安装lamp环境
2.安装依赖包
1
2
3
4
5
|
[root@mail ~]
[root@mail ~]
[root@mail ~]
[root@mail Unix-Syslog-1.1]
[root@mail Unix-Syslog-1.1]
|
3.安装并配置extmail套件
1
2
3
4
|
[root@mail ~]
[root@mail ~]
[root@mail ~]
[root@mail ~]
|
#Apahce虚拟主机配置
1
2
3
4
5
6
7
8
9
10
11
|
[root@mail ~]
User postfix
Group postfix
<VirtualHost *:80>
ServerName mail.4g.com
DocumentROOT /var/www/extsuite/extmail/html
ScriptAlias /extmail/cgi/var/www/extsuite/extmail/cgi
Alias /extmail/var/www/extsuite/extmail/html
ScriptAlias /extman/cgi/var/www/extsuite/extman/cgi
Alias /extman/var/www/extsuite/extman/html
< /VirtualHost >
|
#exmail配置
1
2
3
4
5
6
7
8
9
10
11
|
[root@mail ~]
[root@mail extmail]
[root@mail extmail]
SYS_CONFIG = /var/www/extsuite/extmail/
SYS_LANGDIR = /var/www/extsuite/extmail/lang
SYS_MYSQL_USER = root
SYS_MYSQL_PASS = 123.com
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql .sock
SYS_SHOW_SIGNUP = 1
|
#extman配置
1
2
3
4
5
6
7
8
9
10
|
[root@mail extmail]
[root@mail extman]
SYS_CONFIG = /var/www/extsuite/extman/
SYS_LANGDIR = /var/www/extsuite/extman/lang
SYS_MYSQL_USER = root
SYS_MYSQL_PASS = 123.com
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql .sock
SYS_CAPTCHA_ON = 0
|
#导入extmail数据库
1
2
3
4
5
|
[root@mail docs]
[root@mail docs]
[root@mail ~]
[root@mail docs]
[root@mail docs]
|

至此,企业级邮件系统就搭建完毕,只要域名解析MX记录,就可以在互联网发送邮件了。
本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1331477,如需转载请自行联系原作者
网友评论