开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
大家好,上篇文章简单介绍了电子邮件服务的SMTP协议和POP3协议,那这篇文章就来介绍基于这两个协议搭建邮件服务器。
基于Postfix的邮件发送
安装Postfix
Postfix是CentOS7中默认安装的MTA,因此只需直接启动:
systemctl start postfix
SMTP默认使用25号端口,使用以下命令查看端口是否被Postfix占用:
netstat -tnlp | grep :25
更改主机名
将主机名改为test.com,编辑network文件:
vim /etc/sysconfig/network
将其中的HOSTNAME项改为test.com,保存退出。
配置Postfix
vim /etc/postfix/main.conf
myhostname=mail.test.com
mydomain= test.com
myorigin= $mydomain
mydestination= $myhostname, localhost.$mydomain, localhost, $rmydomain
inet_interfaces=all
home_mailbox=Maildir/
设置内容按行依次是主机名、服务器域名、发件人域名、收件人域名、Postfix监听的网络接口、邮件存储位置。
保存更改后重启Postfix,使配置生效
systemctl restart postfix
使用Postfix发送邮件
使用telnet命令向SMTP服务器发起连接请求:
telnet 0 25
0表示本地服务器地址,可使用localhost或主机IP代替,连接成功显示以下信息:
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix # 连接成功,已正常登录
SMTP不对用户进行认证,可随意设置发件人与收件人
helo mail.test.comy # 向服务器表明身份
250 mail.test.com
mail from:chan@test.com # 设置寄件人
250 2.1.0 Ok
rcpt to:test@test.com # 设置收件人
250 2.1.5 Ok
以上操作只设置一名收件人,若需要发送给多名用户,可重复使用rept命令,执行成功后就可以使用data命令编辑正文:
data
354 End data with <CR><LF>.<CR><LF>
hello world!
.
250 2.0.0 Ok:queued as 55C1E1469B20
邮件发送完成使用quit命令退出,至此基于Postfix的邮件发送操作基本完成
quit
221 2.0.0 Bye
Connection closed by foreign host.
基于Dovecot收取邮件
Dovecot是MDA一种,用于搭建POP3/IMAP服务器,实现电子邮件收信功能。
安装Dovecot
yum install -y dovecot
systemctl start dovecot
POP3服务器默认使用110端口,使用telnet命令连接POP3服务器:
telnet 0 110
配置用户认证方式
Dovecot默认开启系统认证方式,这种认证方式会把系统中的用户视为邮箱用户。但直接使用系统用户很不安全,一般选择使用文件认证。
Dovecot的认证方式通过配置文件进行设置,文件路径:
/etc/dovecot/conf.d/10-auth.conf
修改文件内容,注释系统认证,启用文件认证,修改后内容如下:
#! include auth-system.conf.ext
! include auth-passwdfile.conf.ext
使用文件认证时,需要为用户配置认证文件,用户认证文件路径由下以文件中的passwd项指定:
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
打开以上文件可以观察到如下内容:
passdb{
drive=passwd-file
args=scheme=CRYPT username_format=%u /etc/dovecot/users
}
由文件信息看出,用户认证文件路径为:
/etc/dovecot/users # 该文件需要用户自行创建
编辑文件写入用户认证信息,例如用户test(密码test,id为1001)写入的内容为:
test:{plain}test:1001:1001::/home/test
以上内容由" : "分割为5项,依次表示为用户名、加密方式与口令、代收用户的用户id、代收用户的组id、代收邮件的存储位置。加密方法采用plain时,用户名和口令会以base64格式在网格上传输,相当于明码。
配置mail_location
用户认证文件配置完成后,还需对以下文件中的mail_location选项进行配置:
/etc/dovecot/conf.d/10-mail.conf
mail_location选项的值遵循以下格式:
mail_location=mailbox-fomat:path[:key=value...]
参数说明:
mailbox-fomat表示邮件格式:mbox:传统的UNIX邮件格式maildir:一个文件包含一条邮件信息的格式dbox:Dovecot专用的高效邮件文件格式,可细分以下3类:sdboxmdboxdbox
cydir:Dovecot专用的类似Cyrus格式的邮件格式
path:邮件存放路径。此路径必须是绝对路径且不能为根目录key=value:可选参数
配置文件给出了3种示例取值,此处启用第二种:
# mail_location=maildir:~/Maildir
mail_location=mbox:~/mail:INBOX=/var/mai1/%u
# mail_location= mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
下面创建以上配置文件中指定的邮件存放目录,并将其所有者和所属组都更改为开始设置的用户,例如这里是test:
make -p /home/test/mail/.imap/INBOX
chown -R test:test /home/test/mail
以上配置结束后重启Dovecot:
systemctl restart dovecot
使用Dovecot管理邮箱
使用telnet命令登录邮箱后,使用user命令和pass命令完成用户认证:
user test
+OK
pass test
+OK Logged in.
认证成功后就可以使用POP3命令进行操作了