基于CentOS搭建Postfix、Dovecot邮件服务

1. 准备域名

  • 域名注册

  • 域名解析

    域名购买完成后, 需要将域名解析到你的服务器IP

    完成该实验共需要添加两条记录:

    • A 记录

      记录类型:A
      主机记录:@
      记录值:yourip

    • MX 记录

      记录类型:MX
      主机记录:@
      记录值:yourdomain.com(替换为自己域名)

  • 生效检查

    域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 ,如:

    ping yourdomain.com

    如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。(使用 ctrl + c 停止)

    检查 MX 记录

    替换下面命令中的 yourdomain.com 为您自己的注册的域名:

    nslookup -q=mx yourdomain.com

    如果 nslookup 命令返回的信息中含有你设置的域名的记录值,说明解析成功。

2. 实验之前

配置一个功能完善的邮件服务器并不是一项容易的工作,本实验只是搭建了一个简单的邮件服务器,一些更为强大的功能还需要你去探索。

  • Postfix、Dovecot 简介

    Postfix

    Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件。

    Dovecot

    Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。

  • Postfix、Dovecot 安装

    在 CentOS 7 上,我们可以直接使用 yum 进行下载安装:

    yum -y install postfix dovecot

3. Postfix

  • 配置 Postfix

    有关教程中配置参数的具体含义,请参照 Postfix 配置文档

    配置

    在终端中输入以下命令以修改 Postfix 相关配置:

    注意:记得将 yourdomain.com 替换为你自己的域名

    postconf -e 'myhostname = server.yourdomain.com'
    postconf -e 'mydestination = localhost, localhost.localdomain'
    postconf -e 'myorigin = $mydomain'
    postconf -e 'mynetworks = 127.0.0.0/8'
    postconf -e 'inet_interfaces = all'
    postconf -e 'inet_protocols = all'
    postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain'
    postconf -e 'home_mailbox = Maildir/'
    postconf -e 'smtpd_sasl_type = dovecot'
    postconf -e 'smtpd_sasl_path = private/auth'
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'broken_sasl_auth_clients = yes'
    postconf -e 'smtpd_sasl_authenticated_header = yes'
    postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem'
    postconf -e 'smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem'

    配置中 Postfix 使用 sasltls 来完成身份认证和传输信息加密。

    试验中使用了 Dovecot 默认的 ssl 证书和私钥,如果你需要修改为自己的,请替换最后两行配置的路径。

    配置 smtps

    部分邮件客户端依赖于使用 465 端口提供加密连接,所以我们修改配置,允许 Postfix 使用 465 端口发送邮件。

    打开 /etc/postfix/master.cf 文件,将如下两行前的 # 去除:

    smtps inet n - n - - smtpd
    -o smtpd_tls_wrappermode=yes

    (注意: -o 前要保留空格)

    启动

    使用以下命令,将 Postfix 设为自动启动并首次启动该服务:

    systemctl enable postfix.service
    systemctl start  postfix.service
  • Postfix 日志

    Postfix 系统的日志文件在系统的这个目录下的 /var/log/maillog 文件,此文件记录了 Postfix 服务器的运行状态信息。

4. Dovecot

  • 配置 Dovecot

    修改 dovecot.conf

    打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:

    ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
    ssl_key = </etc/pki/dovecot/private/dovecot.pem
    
    protocols = imap pop3 lmtp
    listen = *
    mail_location = Maildir:~/Maildir
    disable_plaintext_auth = no

    如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。

    修改 10-master.conf

    打开 /etc/dovecot/conf.d/10-master.conf 文件,找到 service auth 部分,将以下行前面的 # 去除:

    unix_listener /var/spool/postfix/private/auth {  
           mode = 0666  
    }
  • 启动 Dovecot

    使用以下命令,将 Dovecot 设为自动启动并首次启动该服务:

    systemctl enable dovecot.service
    systemctl start  dovecot.service

    查看 /var/log/maillog 文件,查看服务是否成功启动。

    如成功启动,日志里应包含如下信息:

    Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail system
    Jun 26 12:00:29 localhost postfix/master[28340]: daemon started -- version 2.10.1, configuration /etc/postfix
    Jun 26 12:28:40 localhost dovecot: master: Dovecot v2.2.10 starting up for imap, pop3, lmtp (core dumps disabled)

5. 创建账户

该配置下邮箱账户依赖于系统用户,所以通过添加系统用户的方式创建邮箱账户。

添加用户

在终端中使用 useradd 命令添加用户:

useradd test

使用 passwd 命令设置对应用户密码:

passwd test

6. 测试

如测试中遇到异常,请查看 maillog 日志文件中的错误信息。

服务器端发送测试

使用 su 命令切换用户:

su test

我们可以使用 mail 命令发送邮件,将 xxxx@xxx.com 替换为你的其他邮箱。

echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com

然后可以前往你的接收方邮箱查收。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值