Linux发送邮件命令mail,mutt
邮件常常是Linux下监控报警手段之一。Linux下的mail命令可以方便,快速的完成发送邮件。
1. Linux发邮件2种常见客户端命令
1.1 mail命令(推荐)
语法:
- 无邮件正文
- mail -s "Title" 123456789@qq.com
- 有邮件正文
- mial -s "Title" 123456789@qq.com </etc/hosts
- echo "Contents"| mail -s "Title" 123456789@qq.com
- cat /etc/hosts |mail -s "Title" 123456789@qq.com
- 带附件的邮件
- mail -s "Title" 123456789@qq.com -a /etc/hosts2
参数:
- -s 主题,邮件标题
- -a attach file添加附件
- -c 给多个用户发送邮件
查看是否安装mail服务:
[root@nfs-31 scripts]# rpm -qa mailx
mailx-12.4-10.el6_10.x86_64
如未安装:
yum install mailx -y
配置文件:/etc/mail.rc
示例:在/etc/mail.rc文件尾加上如下配置
因为163的设置相对简单些,以163邮箱为例,QQ邮箱等,其他邮箱因为安全等因素,需要设置的比较多,具体的可以搞下,本文不作重点。
set from=usr1@163.com
set smtp=smtp.163.com
set smtp-auth-user=usr1
set smtp-auth-password=邮箱密码
set smtp-auth=login
参数说明:
from 是发送的邮件地址
smtp 是发生的外部smtp服务器地址
smtp-auth-user 是外部smtp服务器认证的用户名
smtp-auth-password 密码
smtp-auth 认证方式
发送邮件测试:
echo "Content" | mail -s "Title" dongjunjie@cmcm.com
配置文件/var/spool/mail/[用户名]
查看所有的邮件信息
1.2 mutt命令
语法:
- 无邮件正文
- mutt -s "Title" 123456789@qq.com
- 有邮件正文
- mutt -s "Title" 123456789@qq.com </etc/hosts
- echo "Contents"| mutt -s "Title" 123456789@qq.com
- cat /etc/hosts |mutt -s "Title" 123456789@qq.com
- 带附件的邮件
- mutt -s "Title" 123456789@qq.com -a /etc/hosts2
例如:定期删除脚本
#!/bin/sh
# 2019-12-09
# by zoe
# 轮询删除java日志,只保留7天日志
MailContent = /dev/shm/mailContent
LogFile = /dev/shm/cleanJavaLog.log
LogDir = /home/java/java_*/log
MailList = "system@okoo.net" echo "轮询删除java日志,只保留7天日志,详情请查看邮件!删除日志:`date +%Y%m%d`" >$MailContent if [ -n "$LogDir" ];then
find $LogDir -type f -mtime +7 > $LogFile 2>&1
find $LogDir -type f -mtime +7 -delete > $LogFile 2>&1
mutt -s "Clean the java log 7 days ago" $MailList -a $LogFile<$MailContent
else
echo "删除日志失败,log目录不存在"|mutt -s "Clean the java log Wrong" $MailList
fi
2. 邮件发送原理

Linux本地常见邮件服务有:
CentOS 5 默认使用sendmail邮件服务,开启方式为/etc/init.d/sedmail start
CentOS 6 默认使用postfix邮件服务,开启方式为/etc/init.d/postfix start
2.2 配置mail使用外部SMTP发邮件
通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail/postfix等内部邮件服务而用外部的smtp服务器发送邮件的目的:
- 修改/etc/mail.rc配置文件,配置信息放在最后
- set from=usr1@163.com smtp=smtp.163.com smtp-auth-user=usr1 smtp-auth-password=123456 smtp-auth=login
Linux发送邮件命令mail,mutt的更多相关文章
- Linux基础命令---mail邮件管理程序
mail mail是一个邮件的管理程序,可以用来发送或者接收邮件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora. 1.语法 mail [选项] ...
- Linux下使用mail命令发送邮件
因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...
- Linux下使用mail发送邮件
邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装 [root@vm8028 ~]# mail -bash: mail: ...
- 在Linux系统下mail命令的用法
在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...
- linux全部命令
linux全部命令 一.安装和登陆命令1.进入图形界面startx 2.进入图形界面init 5 3.进入字符界面init 3 4.登陆login 5.关机poweroff-p 关闭机器的时候关闭电源 ...
- Linux常用命令速查备忘
Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...
- linux常用命令加实例大全
目 录引言 1一.安装和登录 2(一) login 2(二) shutdown 2(三) halt 3(四) reboot 3(五) ...
- 一个linux常见命令的列表
这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...
- Linux系列教程(九)——Linux常用命令之网络和关机重启命令
前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压.然后对于.zip格式的文件,使用gunzip ...
随机推荐
- Oracle ROWNUM用法
很多朋友应该跟我一样有个疑问,为什么rownum > 5 的时候会查不到一条数据,用rownum < 5就可以查到数据,明明查询所有的时候rownum有很多啊,小朋友,你是不是有很多问号? ...
- PTA数据结构与算法题目集(中文) 7-28
PTA数据结构与算法题目集(中文) 7-28 7-28 搜索树判断 (25 分) 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值.如果我 ...
- 微信小程序wx:for隐藏遍历的最后一个元素
微信小程序开发时有时会需要从wx:for遍历的元素中选取最后一个来进行相关操作,以下方法以隐藏最后一个元素为例 index==list.length-1 通过获取列表的总长度减一来得到最后一个元素是最 ...
- 01 微信小程序创建组件和使用组件
01 创建组件 遇见的困难 图标显示不出来,是因为你没有在组件的css中引入,所以显示不出来. 我一直以为是一个坑.结果是自己没有整清楚 01==>在page的同级目录下,创建一个文件夹,命名为 ...
- webstorm 永久激活方法
打开终端,执行: cd /etc/ sudo vim hosts 在最后一行加上: 0.0.0.0 account.jetbrains.com 打开webstorm,选择Activation Code ...
- PAT 链表倒序的算法优化
之前的答案错误问题已经解决了,现在还有运行超时的问题,先贴上之前的代码 1 #include <iostream> 2 #include <string.h> 3 using ...
- 28.3 api--date 日期 (日期获取、格式化)
/* * Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间 * System.currentTimeMillis():返回的是当前系统时间,1970-1 ...
- 【python实现卷积神经网络】卷积层Conv2D反向传播过程
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...
- 宏定义#define和内联函数inline的区别
1 宏定义在预编译的时候进行字符串替换.内联函数在编译的时候进行函数展开. 2 宏定义没有类型检查.内联函数会进行参数列表.返回值等类型检查.
- java jdk 中HashMap的源码解读
HashMap是我们在日常写代码时最常用到的一个数据结构,它为我们提供key-value形式的数据存储.同时,它的查询,插入效率都非常高. 在之前的排序算法总结里面里,我大致学习了HashMap的实现 ...