邮件服务器与DNS之间的关系
- 当发件方需要发送邮件给对方邮件服务器,需要向 DNS 请求查询对方邮件服务器的 MX 记录。
- DNS 通过查询 MX 表信息。
- 将查询到的 MX 信息返回给发送方。
- 发送方根据优先级,将邮件投递给对方优先级高的邮件服务器(mail1)。
- 如果主邮件服务器过于繁忙,或者不在线的时候,会将邮件投递给辅的邮件交换器 (mail2)。
- 待主邮件服交换器空闲下来后,mail2 会将代替接收下来的邮件再转给主邮件交换器(mail1)。
Postfix流程
postfix 通过 Internet 发送和接收 email,并存储在用户邮箱里。同时客户也可以通过 IMAP 或者 POP3 恢复他们的邮件。其中的客户认证是通过 Courier Authdaemon 模块。
Postfix安装配置
- 环境
Ubuntu 16.04.5 LTS
- 更新源
1 | $ apt-get update |
- 安装postfix
1 | $ apt-get install postfix |
出现安装界面时,首先按下
tab
键切换到确定,然后按下回车。
安装 postfix 的时候会问你安装的服务器类型,根据当前服务器的类型,这里选择默认的 Internet Site,然后按下回车确认。
接下来需要给当前的服务器设置一个域名,这里设置为 yuhal.com,然后按下
tab
切换到确定,按下回车。
- 查看 postfix 的版本
1 | $ postconf -d | grep mail_version |
- 配置 postfix
1 | myhostname = yuhal.com |
在 /etc/postfix/main.cf 文件中,修改以上三个参数。
- 添加本地用户
1 | # 创建friend用户 |
- 编辑邮件地址
1 | friend@yuhal.com friend |
在 /etc/postfix/virtual 文件中,添加用户对应相关的邮件地址。
- 实现用户与邮件地址映射
1 | $ postmap /etc/postfix/virtual |
- 重启 postfix
1 | $ service postfix restart |
验证
- 安装 mailutils
1 | $ apt-get install mailutils |
验证邮件传输之前,先安装一个命令行收发邮件的软件 mailtuils。
- 写一封邮件
1 | $ vim hello.txt |
- 发送邮件
1 | $ mail -s "hello" friend@yuhal.com < hello.txt |
- 查看邮件
1 |
|
再打开一个终端,登录 friend 用户,按下回车建可以查看邮件内容,输入 quit 即可退出邮箱。