当前位置: > CentOS > CentOS服务器 > 环境配置 >

Centos环境下配置postfix邮件

时间:2017-03-10 22:42来源:linux.it.net.cn 作者:IT

一、邮件的基本概念

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:cxm@cxm.com               #发件人
250 2.1.0 Ok
rcpt to:ts@cxm.com              #收件人
250 2.1.5 Ok
data                        #标题
354 End data with <CR><LF>.<CR><LF>
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=<cxm@cxm.com>, size=325, nrcpt=1 (queue active)
Mar  6 20:52:37 localhost postfix/local[24845]: 2AE424073F: to=<ts@cxm.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 36 21:44 dovecot.index.cache
-rw-------. 1 cxm cxm   704 36 21:44 dovecot.index.log

4.在修改foxmail和dovecot配置文件后出错  看日志文件,一般会写的很清楚,也可以上网查找,也可以留言,大家一起探讨  [root@mail ~]# tail -f /var/log/maillog

这是简单的邮件服务器,还不够安全,以后会更新开源的其他邮件服务器如EXTMAIL,可以在浏览器上收发邮件的邮件服务器配置



(责任编辑:IT)
------分隔线----------------------------