Linux系统下使用 mail 发送邮件

邮件常常是Linux下监控报警手段之一。Linux下的mail命令可以方便,快速的完成发送邮件。下面以CentOS为例

  1、安装:

[app@127-0-0-1 ~]# mail
   -bash: mail: command not found
[app@127-0-0-1 ~]# yum install mailx 

  2、配置

    vi /etc/mail.rc   在文件尾加上如下配置 

注 : 163的设置相对简单些,以163邮箱为例,QQ邮箱等,其他邮箱因为安全等因素,需要设置的比较多,具体的可以搞下,本文不作重点。QQ邮箱也是可以的。

163配置:

set from=显示的发件人,必须和认证用户邮箱一致
set smtp=smtp.163.com (163固定)
set smtp-auth-user=163邮箱用户名
set smtp-auth-password=163邮箱的授权码
set smtp-auth=login    注:"="两边无空格

   qq配置:

set from=显示的发件人,必须和认证用户邮箱一致
set smtp=smtp.qq.com(qq固定)
set smtp-auth-user=qq邮箱账号
set smtp-auth-password=授权码
set smtp-auth=login  注:"="两边无空格

  3、报错

[app@127-0-0-1 ~]# echo "Content" | mail -s "Title" 1378943543@qq.com
[app@127-0-0-1 ~]# smtp-server: 550 User has no permission
"/root/dead.letter" 10/235
. . . message not sent.
^C
[app@127-0-0-1 ~]# 

 原因:由于163邮箱登录被拒绝了,解决:登录163邮箱,按下图1,2,3步骤进行就可以解决

qq 授权设置:【设置】-【账户】-【POPS/SMTP服务】-【开启】-【发送短信】-【已发送】-【获得授权码】

 最后点击【确定】

4、成功

[app@127-0-0-1 ~]# echo "I love you" | mail  -s "love letter"  *****@qq.com
[app@127-0-0-1 ~]# 

  状态:

  5、拓展

   5.1 mail命令参数

       -s <邮件主题>:指定邮件的主题;

       -c <地址>:添加邮件抄送人,多个人时用逗号隔开;

       -b <地址>:添加邮件暗送人;

       -a <附件>: 添加附件。

 mail命令 可以使用查看具体更多的使用方法,mail --h 可以查看

    5.2无邮件正文  

[app@127-0-0-1 ~]# mail  -s  "Title"  userName@qq.com

 5.3 有邮件正文

[app@127-0-0-1 ~]# mail  -s  "Tile"  userName@qq.com   <  /data/letter-comtext.txt

  或

[app@127-0-0-1 ~]# cat  /data/letter-context.txt  | mail  -s  "Tile"  userName@qq.com

  或

[app@127-0-0-1 ~]# echo “context“  |   mail  -s  "Tile"  userName@qq.com 

   5.4带附件的邮件

[app@127-0-0-1 ~]# mail -s "Tile"   -a  /data/letter-context.txt  userName@qq.com
缘于生活,而归于工作。本人所书,而意于分享。 如有转载,请注明出处! --活出自己范儿
原文地址:https://www.cnblogs.com/Small-sunshine/p/11508021.html