邮件常常是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

Linux系统下使用 mail 发送邮件的更多相关文章

  1. 在Linux系统下mail命令的用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  2. linux系统下邮件的发送

    在linux系统下发送邮件一般都要要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用. 其实我还可以安装mailx软件,通过修改配置文件可以使用外部SMTP服务 ...

  3. linux系统下的权限知识梳理

    下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...

  4. Linux系统下用户与组的管理

    Linux系统下用户与组的管理 一.用户及组基本概述 Linux 系统上,用户管理是基于用户名和密码的方式进行资源的分配. 1.uid(用户身份标识) (1)root用户 uid为0 (2)普通用户: ...

  5. Linux系统下DHCP服务安装部署和使用详解

    一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...

  6. 在Linux系统下运行微信Web开发者工具

    微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...

  7. Vi (Unix及Linux系统下标准的编辑器)VIM (Unix及类Unix系统文本编辑器)

    Vi是Unix及Linux系统下标准的编辑器.学会它后,您将在Linux的世界里畅行无阻.基本上vi可以分为三种状态,分别是命令模式.插入模式,和底行模式. vi编辑器是所有Unix及Linux系统下 ...

  8. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  9. Linux系统下配置JDK环境变量

    刚申请了阿里云,平时很少接触Linux,特此记录一下Linux系统下安装JDK的步骤. 1.进入usr:cd /usr: 2.创建java文件夹:mkdir java: 3.将下载好的文件拷贝至jav ...

随机推荐

  1. 在C语言中函数及其调用过程

    目录 函数 C语言中的变参函数 函数的本质是什么 内存区域的区分技巧 函数的调用过程 栈帧的概念 调用过程细节 按照约定传参 函数 如果一个函数有声明没实现,那么就会出现链接错误: 以上代码会出现链接 ...

  2. Java内存模型(二)volatile底层实现(CPU的缓存一致性协议MESI)

    CPU的缓存一致性协议MESI 在多核CPU中,内存中的数据会在多个核心中存在数据副本,某一个核心发生修改操作,就产生了数据不一致的问题,而一致性协议正是用于保证多个CPU cache之间缓存共享数据 ...

  3. Elasticsearch-布尔类型

    boolean类型用于存储文档中的true/false.例如:专辑类型中需要添加一个字段表示是否可以下载,如下 curl -XPUT 'localhost:9200/music/album/4' -d ...

  4. 吉首大学2019年程序设计竞赛-F 天花乱坠

    题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...

  5. [转帖]一张图让你看懂InnoDB

    一张图让你看懂InnoDB 2018年05月10日 10:02:34 灵魂自由的忙人 阅读数 299 https://blog.csdn.net/xiaoyi23000/article/details ...

  6. <<C++ Primer>> 第 7 章 类

    术语表 第 7 章 类 抽象数据类型(abstract data type): 封装(隐藏)了实现细节的数据结构.    访问说明符(access specifier): 包括关键字 public 和 ...

  7. git删除已经push的远程文件或文件夹

    在使用git提交项目时,有时候会误提交一下文件,比如:*.iml,*.project,*.settings,.idea/*等文件,有时候这些不需要提交的文件可以加入到.gitignore,在提交的时候 ...

  8. node工具之pm2

    pm2 PM2是带有内置负载平衡器的Node.js应用程序的生产过程管理器.它使您可以使应用程序永远保持活动状态,无需停机即可重新加载它们,并简化常见的系统管理任务. 安装 npm install p ...

  9. C++ 数组操作符重载、函数对象分析、赋值操作符

    string类型访问单个字符 #include <iostream> #include <string> #include <sstream> using name ...

  10. 帝国cms 获取一条数据,但是从第二条开始获取

    /*这里的1指的是获取一条数据,2指的是从第二条开始获取*/ [e:loop={"select * from phome_ecms_news where classid='2' limit ...