Linux常用命令-mailx

命令

mailx

描述

send and receive Internet mail
邮件客户端工具

用法

1
mailx [-s subject] [-a attachment ] [-c cc-addr] [-r from-addr] [-h hops] [-A account] to-addr...

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Options:
-a file 添加附件
-b address 指定隐藏的抄送人
-c address 指定抄送人
-r address 指定发件人
-s subject 指定邮件主题
-u user 读取指定用户的邮件
-H 显示所有邮件列表
-v 显示详情

mailx Command:
h 显示邮件列表
NUM 查看第几封邮件
. 当前邮件
^ 第一封邮件
$ 最后一封邮件
-/+ 上一封/下一封
/string 过滤邮件标题
d 删除指定邮件
u 恢复删除的邮件
r 回复邮件
s NUM filename 保存邮件到指定文件,默认保存到家目录~中,也可以指定绝对路径
ctrl+d 退出编辑模式
q 退出

注意

mailx命令需要安装mailx软件包,配置文件路径/etc/mail.rc

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 安装mailx客户端软件包
$ yum install mailx
# 查看邮件列表
$ mailx
# 给系统用户usera发送邮件,ctrl+d完成输入并发送
$ mailx usera
# 给外部邮箱发送邮件,需要配置/etc/mail.rc,指定smtp服务器信息
$ mailx usera@a.com
# 发送给多个收件人
$ echo "hello" | mailx -s "test" usera@a.com,userb@b.com
# -c抄送
$ echo "hello" | mailx -s "test" -c userb@b.com usera@a.com
# -r指定发件人
$ echo "hello" | mailx -s "test" -r root@a.com usera@a.com
# -a指定附件
$ echo "hello" | mailx -s "test" -a file.txt usera@a.com

# 以下为发送邮件给系统用户usera,指定主题为test,读取file.txt文件内容作为邮件内容
$ echo hello usera > file.txt
$ mailx -s "test" usera < file.txt
# 查看usera的邮件
$ mailx -u usera
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/usera": 2 messages 1 new
1 root Thu Mar 25 20:18 19/602 "test"
>N 2 root Thu Mar 25 21:07 18/593 "test"
&
Message 2:
From root@centos7.localdomain Thu Mar 25 21:07:45 2021
Return-Path: <root@centos7.localdomain>
X-Original-To: usera
Delivered-To: usera@centos7.localdomain
Date: Thu, 25 Mar 2021 21:07:45 +0800
To: usera@centos7.localdomain
Subject: test
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@centos7.localdomain (root)
Status: R

hello usera

# 以下为发送邮件给外部邮箱,编辑配置文件,添加如下内容,如果默认的25端口被封,建议使用SSL配置
# 非SSL配置如下
$ vim /etc/mail.rc
# 指定发件人
set from=xxx@163.com
# 邮件服务器
set smtp=smtp.163.com
# 发件人账号
set smtp-auth-user=xxx@163.com
# 发件人密码或授权码
set smtp-auth-password=xxx
# 邮件认证方式
set smtp-auth=login

# SSL配置如下
$ vim /etc/mail.rc
set from=xxx@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=xxx@163.com
set smtp-auth-password=xxx
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

# 发送邮件
$ echo "测试邮件" | mailx -s "测试" xxx@163.com,xxx@qq.com