Linux使用mailx发送邮件--技术流ken
前言
最近想要监控系统服务运行情况并实现自动发送邮件报警,zabbix虽然也可以实现这样的功能,但是这里使用一个非常简单的办法就可以实现。需要安装mailx工具,mailx是一个小型的邮件发送程序。
安装步骤
第一步:安装mailx
[root@ken ~]# yum install mailx -y
第二步:编辑配置文件
在mail.rc这个配置文件中,在末行添加如下的内容
[root@ken ~]# vim /etc/mail.rc
set from="1614833188@qq.com" #这个和第三行邮箱地址需要保持一致
set smtp="smtp.qq.com"
set smtp-auth-user="1614833188@qq.com"
set smtp-auth-password="xxxxxx" #邮箱授权码
set smtp-auth="login"
说明
from:对方收到邮件时显示的发件人
smtp:指定第三方发邮件的smtp服务器地址
set smtp-auth-user:第三方发邮件的用户名
set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码
smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
授权码获取
第一步:授权码获取
登录qq邮箱,点击设置>账户

点击生成授权码即可

测试
这句命令的后面的1614833188@qq.com是收件地址
[root@ken ~]# echo "这是一封测试邮件" | mail -s "测试邮件" @qq.com

以上已经实现了发邮件功能!!!
邮件发送书写格式
1) 无邮件正文
mail -s "主题" 收件地址
实例: mail -s "测试" 1614833188@qq.com
2) 有邮件正文
- mail -s "主题" 收件地址< 文件(邮件正文.txt)
实例: mail -s "邮件主题" 1614833188@qq.com < /data.txt
- echo "邮件正文" | mail -s 邮件主题 收件地址
实例: echo "邮件正文内容" | mail -s "邮件主题" 1614833188@qq.com
- cat 邮件正文.txt | mail -s 邮件主题 收件地址
实例: cat /data.txt | mail -s "邮件主题" 1614833188@qq.com
3) 带附件
- echo "邮件正文" | mail -s "主题" -a 附件 收件地址
实例: echo "邮件正文" | mail -s "邮件主题" -a /etc/passwd 1614833188@qq.com
实战案例
需求:
1. 检测本机web服务
2. 如果web服务宕机发送邮件报警通知管理员
第一步:编辑检测脚本
#!/bin/bash
while true
do
num=`ss -tl | grep -c http`
if [ $num -eq ];then
echo "web服务宕机,请立即检查修复!" | mail -s "web服务宕机" @qq.com
break
fi
done
第二步:后台运行脚本
[root@ken ~]# nohup bash test.sh &
[]
[root@ken ~]# jobs
[]+ Running nohup bash test.sh &
第三步:模拟web服务宕机
[root@ken ~]# systemctl stop httpd
第四步:检查邮件

Linux使用mailx发送邮件--技术流ken的更多相关文章
- Linux权限管理(week1_day5)--技术流ken
权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...
- 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken
前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...
- MySQL/MariaDB数据库忘掉密码解决办法--技术流ken
前言 有些时候我们常常会忘掉一些服务的密码,比如系统密码,我们可以进入救援模式进行修改密码,可参考我之前的博客<Centos7破解密码的两种方法--技术流ken>.但有些时候我们也会忘掉数 ...
- Docker网络(五)--技术流ken
本章内容 1.dokcer默认自带的几种网络介绍 2. 自定义网络 3. 容器间通信 4. 容器与外界交互 docker网络分为单个主机上的容器网络和多个主机上的哇网络,本文主要讲解单个主机上的容器网 ...
- zabbix实现QQ邮件报警通知--技术流ken
前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...
- 五分钟彻底学会iptables防火墙--技术流ken
iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, ...
- Docker之使用Dockerfile创建定制化镜像(四)--技术流ken
前言 在之前的博客<Docker端口映射及创建镜像演示(二)--技术流ken>,演示了如何使用一个现有容器创建一个镜像,以及镜像在阿里云的上传和下载. 但是这样的镜像有很大的局限性,不能根 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)--技术流ken
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+A ...
随机推荐
- shell编写自动化安装dhcp服务
#!/bin/bash#Auth:Darius#自动化安装dhcp服务#"$1"为测试IP,用来查看IP段是否能通eno=`ifconfig|awk '{print $1}'|he ...
- Cbv源码简单分析图
重点:cbv源码的简单分析(有后续)
- 关于c++的一篇随笔
众所周知c++是一门极其深奥的学科,正因为其深奥之处,才会让人们觉得学习起来特别难.当然,我想说我自己也不例外,想起当初就像一场噩梦一样,直到今日还历历在目.尽管如此,c++还是一门相当有魅力的课程, ...
- 在linux环境下用中文查询数据库
1.用SQL在linux环境下,查询语句的中文条件,查不到结果. mysql -h ***.***.***.*** -P 3303 -uroot -p*********** -D boztax -e ...
- [Swift]Alamofire:设置网络请求超时时间【timeout】的两种方式
两种方式作用相同,是同一套代码的两种表述. 第一种方式:集聚. 直接设置成员属性(全局属性),这种方法不能灵活修改网络请求超时时间timeout. 声明为成员属性: // MARK: - 设置为全局变 ...
- Aseprite入门教程
因为最近在学cocos2d-x和vs搭配做手机游戏开发,想自己做一些素材,所以找到了这款软件,Aseprite v1.1.12.刚安装上时也是不懂该怎么操作,随着逐渐地摸索,对初始的使用有了一些了解. ...
- Source Qualifter组件中sqlquery过长导致截取
问题:Source Qualifter组件中sqlquery过长导致截取原因:Source Qualifter组件中sqlquery可以接受的最长字符数是32767个字符,超过这个数字会导致截取解决方 ...
- socket 实现单一串口共享读写操作
前提:物理串口连接到PC上,通过串口号被PC唯一识别. 此时,物理串口通过该串口号仅能被单一线程或进程实例并占用,其他线程或进程不能再通过该串口号与物理串口通信.这个暂称为串口独占性. 解决思路:核心 ...
- Xamarin.Android ImageView 图片圆角显示
第一步:在 values 文件夹下新增 Attrs.xml 文件 <?xml version="1.0" encoding="utf-8" ?> & ...
- 记一次 net 使用 data.oracleclient 使用错误OCIEnvCreate 失败, 返回代码为-1
前提: 公司除了领导和开发人员具有管理员权限,其他人员使用的都是域账号. 过程: 应要求开发一个 winfrom项目,使用data.oracleclient 本地开发,调试无误,放到服务器共享域用户 ...