前端时间尝试了下自己搭建邮件系统,遇到了很多难点,主要是不了解邮件系统,如果你和一样不了解邮件系统,你可以先看下我的另一篇文章《邮箱系统的新认识》,相信在看完后再去搭建就会很明确。那假如你已经了解了邮箱系统,于是你可以继续往下看。

步骤1 - 申请域名及添加MX记录

这里就不多说,可以去Google,这里贴下我的解析配置,我的域名是smallmuou.xyz

记录类型 主机记录 记录值 MX优先级
A mail xxx.xxx.xxx.xxx  
MX @ mail.smallmuou.xyz 10
A @ xxx.xxx.xxx.xxx  

步骤2 - 修改FQDN为邮件域名

可以去Google,贴下我的结果

[root@mail ~]# hostname -f
mail.smallmuou.xyz

步骤3 - 选择服务软件

这里需要SMTP和POP3/IMAP服务软件,别问我为何。

  • 针对SMTP,查了下有Sendmail、Postfix,其实很多系统已经预装了Sendmail,但考虑到最优性,这里选择Postfix;

  • 针对POP3/IMAP服务,大家比较推荐的是Dovecot

步骤4 - 安装Postfix

请使用Linux系统自带安装工具安装,Debain的apt-get、Centos的yum

apt-get install postfix
或
yum install postfix

步骤5 - 配置Postfix

vim /etc/postfix/main.cf


myhostname = mail.smallmuou.xyz
mydomain = smallmuou.xyz
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/

步骤6 - 启动Postfix

在启动前,可以先查看下25端口占用情况,如果端口被占用,将会导致无法启动

[root@mail ~]# lsof -i:25
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
master  11093 root   12u  IPv4 430554452      0t0  TCP *:smtp (LISTEN)

PS: 这里我已经启动了postfix,因此25端口是被占用

通过service postfix start/etc/init.d/postfix start启动postfix

步骤7 - 测试Postfix

搭建完服务必备的动作就是测试,这里可以通过telnet来测试

telnet localhost 25
ehlo mail.smallmuou.xyz
mail from: root@smallmuou.xyz
rcpt to:root@smallmuou.xyz
data
subject:11212
test

PS: <Ctrl+D> 发送,可以通过postqueue -p查看发送队列,当然可以安装mailutils来简化发送流程

步骤8 - SMTP认证

vim /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_banner = $myhostname ESMTP "SMTP Auth Required."
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_rbl_client
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot

PS: 启动saslauthd和postfix

步骤9 - 安装Dovecot

yum install dovecot
或
apt-get install dovecot

步骤10 - 配置Dovecot

vim /etc/dovecot/dovecot.conf


protocols = imap pop3 lmtp
listen = *
mail_location = maildir:~/Maildir

步骤11 - 启动Dovecot

通过service dovecot start/etc/init.d/dovecot start启动dovecot

启动后查看下端口信息,POP3默认端口是110,IMAP默认端口143

步骤12 - 测试Dovecot

  • 检测POP3服务
[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.

PS:quit退出

  • 检测IMAP服务
[root@mail ~]# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.

PS:e logout退出

步骤13 - 新建用户

邮件用户对应的就是系统的用户,可以通过useradd添加用户

useradd test
passwd test

步骤14 - 客户端连接

通过foxmail、outlook设置邮箱,其中认证部分需要用用户名+密码登录,用户名不用带后缀,否则会提示帐号密码错误

步骤15 - 完成

以上是配置邮箱的所有步骤

写在最后

最最重要:如果用户量、发送量、容量要求不大,可以使用第三方免费企业邮,如网易企业邮、腾讯企业邮,这样不用自己去维护. 上面只是邮件系统的简单版,还需要添加垃圾邮件机制、用户管理等.