Linux基础(52)之电子邮件服务

Linux基础(52)之电子邮件服务

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

常用邮件协议

先了解一下常用的邮件协议:

  • SMTP:全称“simple mail transmission protocol”,即简单邮件传输协议,仅用于传送邮件;
  • POP3:全称“Post Office Procotol”,即邮局协议,仅用于接收邮件;
  • IMAP4:全称“Internet Mail Access Procotol”,即互联网邮件访问协议,仅用于接收邮件,与 POP3 相似,但比 POP3 更强大;

电子邮件的工作模式

image.png

以 UserA 发送邮件给 UserB 为例:

  1. UserA 通过 MUA 发送邮件到他的 SMTP 服务器;
  2. UserA 的 SMTP 服务器通过网络传输到 UserB SMTP 服务器;
  3. UserB 的 SMTP 服务器投递邮件到 UserB 的邮桶;
  4. UserB 通过 MUA 连接 POP3 或 IMAP4 服务器检索 UserB 油桶;
  5. UserB 油桶返回邮件给 POP3 或 IMAP4 服务器;
  6. POP3 或 IMAP4 服务器继续将邮件返回给 MUA;
  7. UserB 用户通过 MUA 查看到邮件内容;

Linux上的邮件服务

介绍

在 Linux 主机内部有一些日常维护工作的结果需要通知给管理员,通知的方式就是使用邮件服务。
邮件服务在安装完 CentOS 系统后默认就会启动起来。
执行 ss -tnl

image.png

可以看到有一个监听 25 号端口的进程,该进程就是发送邮件的 SMTP 服务。
这个邮件服务只监听在 127.0.0.1 上,这意味着这个邮件服务的收发都只能在本机中进行。
默认在 CentOS 中的 /var/spool/mail 下存放着当前主机每个用户所接收到的邮件,类似邮筒,而每个邮筒默认是以单个文件的形式存在的,且命名与用户名相同。如:

[~]: ls /var/spool/mail/
root

如上则时 root 用户的邮筒,而 root 用户所收到的所有邮件都挤压式的存放在该文件中。

本机邮件的收发

在 Linux 主机本机收发邮件可使用 mail 命令来完成,常用格式如下:

mailx  [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] to-addr . . .
    -s subject:指定主题为 subject;
    -a attachment:指定附件;
    -c cc-addr:指定抄送地址;
    -b bcc-addr:指定密送地址;
    to-addr:目标地址

发送邮件

以给 root 用户发送邮件为例:

[~]: mail -s "Hello~" root@zzehost
Hello root!!!EOT 

CTRL + D 提交并结束输入。

查看邮件

查看邮件直接执行 mail 命令即可,当前登录的用户是 root,所以查看的就是 root 用户收到的邮件,例:

image.png

执行后会进入到 mail 命令的提示符下,输入邮件的序号则可查看指定邮件的详情,例:

image.png

提示符下使用 q 退出。
还可通过输入重定向或管道指定要发送的内容,以将当前目录下 mail.txt 文件内容作为邮件内容发送给 root 用户为例:

  • 输入重定向:mail -s hello root@zzehost < mail.txt
  • 管道:cat mail.txt | mail -s hello root@zzehost

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/linux-base-52.html

Buy me a cup of coffee ☕.