一、安装部署

yum -y install mailx

二、开启163的SMTP服务

注:为什么能发邮件,正常是163网站注册账户发送邮件,而后台是邮件服务器帮你发送,邮件信息中标明是你的邮箱账户。mail只是个命令,它不具备邮件服务器功能,mail配置连接那个邮件服务器,通过mail命令告诉邮件服务器你应该发什么信息,仅此而已。所以需要先打开163的SMTP服务,让mail能跟163通信交互。

2.1、登录163,点击POP3/STMP

 2.2、开启IMAP/SMTP服务

2.3、开启后生成授权密码,记住它

注:开启POP3/SMTP服务,mail连接POP3/SMTP服务会报错

smtp-server: 550 User has no permission
"/root/dead.letter" 11/304
. . . message not sent.

三、修改配置文件

3.1、修改配置文件,让mail能够连接163的stmp,在文件尾加上如下配置

[root@localhost ~]# vim /etc/mail.rc

set from=wy1151939762@163.com               #此处设置发件人的信息
set smtp=smtp.163.com                       #此处配置对应邮箱的stmp服务器
set smtp-auth-user=wy1151939762@163.com     #此处配置发件人邮箱地址
set smtp-auth-password=××××××××××           #客户端授权码,不是邮箱地址密码
set smtp-auth=login                         #邮件认证方式

1、set smtp-auth-password=××××××× # 此处=后添写的是第二步的授权密码,不是邮箱地址密码
2、因为163的设置相对简单些,以163邮箱为例,QQ邮箱等,其他邮箱因为安全等因素,需要设置的比较多

四、验证

不用重启服务之类,直接发送邮件,没有报错代表无问题

[root@localhost ~]# echo "Content" | mail -s "Title" 1151939762@qq.com
[root@localhost ~]#

注:
echo "发送的内容" | mail -s "标题" 发送的邮箱

查看邮件

五、mail 参数

5.1 、不带附件

1、在线编辑输入内容:可以把当前shell当成编辑器来用,执行后输入的是邮件内容,编辑完内容后Ctrl+D结束,提示EOT代表结束。"Title"是标题

[root@localhost ~]# mail -s "Title" 1151939762@qq.com
世界你好呀EOT
[root@localhost ~]#

2、echo编辑好内容发送:echo "发送的内容" | mail -s "标题" 发送的邮箱

[root@localhost ~]# echo "mail content"|mail -s test 1151939762@qq.com  

3、读取本地文件内容当作发送内容:mail -s "标题" 发送的邮箱<把本地的一个文件内容当作邮件发送内容

[root@localhost ~]# mail -s "Title" 1151939762@qq.com</root/nihao.txt

4、给多个用户发送邮件:mail -s "标题" -c 发送的邮箱1 发送的邮箱2<本地的一个文件内容当作邮件发送内容

[root@localhost ~]# mail -s "Title" -c 1151939762@qq.com wy1151939762@163.com</root/nihao.txt

5、批量给多个用户发送邮件:

[root@localhost ~]# cat /root/123.txt
1151939762@qq.com
wy1151939762@163.com

[root@localhost ~]# mail -s "Title" -c `cat /root/123.txt` </root/nihao.txt

6、使用(<<EOF 内容 EOF)

mail -s "Title" wy1151939762@163.com <<EOF
> 你好世界
> EOF
[root@localhost ~]#

格式:
mail -s "主题" 收件地址 <<EOF
>(写入内容)
>EOF 回车则自动发送

5.2 、带附件

据了解,mail本身是不能发附件的,要借助uuencode,所以需要先装sharutils,如果你的系统里没有uuencode命令的话,请先安装sharutils(yum install  -y sharutils)
uuencode 需要两个参数,第一个是你要发送的文件(们),当然这个也可以用管道来做,第二个是显示的文件名
命令很简单( uuencode 附件名称 附件显示名称|mail -s 邮件标题 地址),个人测试不好使,不是想要的那种发邮件带附件,uuencode可以进行编码,收件人收到编码后,必须有能解析的工具才能看。

Logo

鸿蒙生态一站式服务平台。

更多推荐