一、邮件的基本概念
1、邮件服务的协议:
a) SMTP:Slmple Mail Tansfer Protocol(简单邮件传输协议)端口:25(发)
ESMTP:Extended(可以实现检查)
B) POP3 :Post Office Protocol(邮局协议3代)端口:110(收)
IMAP4:Internet Mail Access Protocol(互联网邮件访问协议4代)
C) SASL:Slmple Authlntcation Secure Layer(简单认证安全层)
2、邮件中继:指在不改变用户邮件地址(发件人)的前提下,将用户邮件通过多链路SMTP邮件转发服务器投递到收件人邮件服务器。
3、角色
a) MTA:邮件传输代理,SMTP服务器
程序:sendmail(uucp),qmail,potfix,exim,Exchange(windows)
b) MDA:邮件投递代理
程序:procmail(sendmail),maildrop,
c) MRA:邮件检索代理(实现pop3,imap4)
程序:cyrus-imap,dovecot
d) MUA:邮件用户代理
程序:Outlook Express(简装版),Outlook(专业版),Foxmail,Thunderbird(Linux),mutt(Linux)
4、webmail:Openwebmail、Squirrelmail、Extmail(extman管理系统,)
二、邮件服务器的搭建
1.修改主机名:
[root@CXM ~]# hostname mail.cxm.com
[root@CXM ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.cxm.com
从新登录可以看到效果
2.配置DNS(正解反解都要配置)
[root@mail ~]# yum -y install bind
配置DNS的主配置文件
[root@mail ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #监听端口
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许访问的地址
recursion yes;
修改DNS的区域配置文件
[root@mail ~]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak #复制区域配置文件防止修改错了
[root@mail ~]# vim /etc/named.rfc1912.zones
zone "cxm.com" IN { #域
type master;
file "cxm.localhost"; #设置正向解析数据文件名字
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN { #IP地址的反写
type master;
file "cxm.empty"; #设置反向解析数据文件名字
allow-update { none; };
};
修改DNS的数据文件
[root@mail ~]# cd /var/named/
[root@mail named]# cp -p named.localhost cxm.localhost
[root@mail named]# cp -p named.empty cxm.empty
[root@mail named]# vim cxm.localhost #修改正向解析文件
$TTL 1D
@ IN SOA cxm.com. rname.invalid. ( #域(记得最后带.)
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cxm.com. #dns
MX 10 mail.cxm.com. #MX记录解析邮件域名
dns A 192.168.1.24
mail A 192.168.1.24
[root@mail named]# vim cxm.empty #修改反向解析文件
$TTL 3H
@ IN SOA cxm.com. rname.invalid. ( #域
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.cxm.com.
24 PTR dns.cxm.com.
24 PTR mail.cxm.com.
启动DNS服务器
[root@mail named]# service named restart
指定DNS服务器
[root@mail ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.1.24
重启网卡
[root@mail named]# service network restart
测试
[root@mail ~]# nslookup
> mail.cxm.com
Server: 192.168.1.24
Address: 192.168.1.24#53
Name: mail.cxm.com
Address: 192.168.1.24
> 192.168.1.24
Server: 192.168.1.24
Address: 192.168.1.24#53
24.1.168.192.in-addr.arpa name = mail.cxm.com.
24.1.168.192.in-addr.arpa name = dns.cxm.com.
2.安装配置postfix
如果系统自带的mail软件是sendmail先卸载sendmail。安装postfix。我用的系统是Centos6.5的实验环境,自带的mail软件是postfix
[root@mail ~]# service sendmail stop
[root@mail ~]# chkconfig sendmail off
[root@mail ~]# rpm -e sendmail --nodeps #卸载依赖
[root@mail ~]# rpm -q postfix
postfix-2.6.6-2.2.el6_1.x86_64 #默认安装了postfix(但是默认安装的postfix是不支持SASL的只能明文密码大家注意)
修改postfix的配置文件main.cf
[root@mail ~]# vim /etc/postfix/main.cf
myhostname = mail.cxm.com
mydomain = cxm.com
myorigin = $myhostname
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#home_mailbox = Maildir/ #邮件放置位置。默认是mailbox。Dovecot也是默认支持mailbox的所以这里不改动
#Mailbox一个文件储存所有邮件
#Maildir一个文件储存一封邮件,所有邮件存储一个目录
inet_interfaces = all
#mynetworks = 192.168.1.0/24, 127.0.0.0/8 #表示中继 但是一般不改变,不给任何人中继
重启postfix使配置生效
[root@mail ~]# service postfix restart
关闭 postfix: [确定]
启动 postfix: [确定]
测试是否可以发送邮件(现在还不可以收邮件)
添加用户
[root@mail ~]# useradd cxm
[root@mail ~]# passwd cxm
[root@mail ~]# useradd ts
[root@mail ~]# passwd ts
安装telnet测试
[root@mail ~]# yum -y install telnet
测试(查看日志)
[root@mail ~]# telnet mail.cxm.com 25 #连接mail.cxm.com的25号端口
Trying 192.168.1.24...
Connected to mail.cxm.com.
Escape character is '^]'.
220 mail.cxm.com ESMTP Postfix
helo mail.cxm.com
250 mail.cxm.com
mail from:[email protected] #发件人
250 2.1.0 Ok
rcpt to:[email protected] #收件人
250 2.1.5 Ok
data #标题
354 End data with .
test
. #结束
250 2.0.0 Ok: queued as 2AE424073F
quit #退出
221 2.0.0 Bye
Connection closed by foreign host.
查看日志
[root@mail ~]# tail /var/log/maillog
Mar 6 20:52:23 localhost postfix/smtpd[24832]: 2AE424073F: client=mail.cxm.com[192.168.1.24]
Mar 6 20:52:37 localhost postfix/cleanup[24844]: 2AE424073F: message-id=<20170306125223.2AE424073F@mail.cxm.com>
Mar 6 20:52:37 localhost postfix/qmgr[24714]: 2AE424073F: from=.com>, size=325, nrcpt=1 (queue active)
Mar 6 20:52:37 localhost postfix/local[24845]: 2AE424073F: to=.com>, relay=local, delay=76,
delays=76/0.09/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox) #状态为sent表示已经发送
Mar 6 20:52:37 localhost postfix/qmgr[24714]: 2AE424073F: removed
Mar 6 20:52:50 localhost postfix/smtpd[24832]: disconnect from mail.cxm.com[192.168.1.24]
安装dovecot修改配置
[root@mail ~]# yum -y install dovecot
[root@mail ~]# vim /etc/dovecot/dovecot.conf
protocols = imap pop3 #支持协议
[root@mail ~]# vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no #允许明文密码验证
[root@mail ~]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
[root@mail ~]# su - cxm #切换用户
[cxm@mail ~]$ mkdir -p ~/mail/.imap/INBOX#创建目录
[cxm@mail ~]$ su - ts密码:
[ts@mail ~]$ mkdir -p ~/mail/.imap/INBOX
[ts@mail ~]$ su - root密码:
[root@mail ~]#
重启dovecot使配置生效
[root@mail ~]# service dovecot start
正在启动 Dovecot Imap: [确定]
用客户端软件测试是否可以收发邮件
foxmail设置如下
Windows Live Mail设置如下
测试
收到邮件证明测试成功
三、Centos环境下配置postfix邮件常见的报错信息
1.在启动DNS时出现Generating /etc/rndc.key:卡在这里了
解决:[root@mail named]# rndc-confgen -r /dev/urandom -a
2.telnet连接不上域名+25号端口但是可以连接localhost+25号端口
有可能是没有指定DNS,或者指定之后没有重启服务
3.foxmail和win live mail登录不上
可能是没有在指定用户上创建~/mail/.imap/INBOX目录,也可能是没有切换到相对用户创建,因为这个目录的所有者和所属组都是对应的用户
[root@mail ~]# ls -l /home/cxm/mail/.imap/INBOX/
总用量 20
-rw-------. 1 cxm cxm 16384 3月 6 21:44 dovecot.index.cache
-rw-------. 1 cxm cxm 704 3月 6 21:44 dovecot.index.log
4.在修改foxmail和dovecot配置文件后出错
看日志文件,一般会写的很清楚,也可以上网查找,也可以留言,大家一起探讨
[root@mail ~]# tail -f /var/log/maillog
这是简单的邮件服务器,还不够安全,以后会更新开源的其他邮件服务器如EXTMAIL,可以在浏览器上收发邮件的邮件服务器配置