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 ...
随机推荐
- spring filter lister servlet
https://blog.csdn.net/nacey5201/article/details/8547772 https://blog.csdn.net/xwl617756974/article/d ...
- js基础知识:字面量 关键字和保留字
js中的字面量概念我的理解就是:字体表面的常量 如:数字 100, 字符串 "ssss"或'ssss' 布尔值:false ,正则 以及null对象. 这些都是常量. 关键字: ...
- Node selenium-webdriver
Selenium-webdriver基本使用 准备 ① node.js 的安装和配置略 ② Selenium-webdriver npm install -save selenium-webdrive ...
- (一)Javascript 面向对象编程:封装
Javascript 面向对象编程:封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP ...
- hbuilder真机调试时,手机端无法连接电脑测试的处理办法
首先保证手机端与电脑处在同一网段 关闭电脑防火墙 电脑服务端需要配置iis网站,同时在hbuilder的manifest.json 配置与iis网站ip一致的url
- 背水一战 Windows 10 (99) - 关联启动: 关联指定的文件类型, 关联指定的协议
[源码下载] 背水一战 Windows 10 (99) - 关联启动: 关联指定的文件类型, 关联指定的协议 作者:webabcd 介绍背水一战 Windows 10 之 关联启动 关联指定的文件类型 ...
- Android WebView 实现网页缩放
需要对WebView设置的内容如下: //缩放开关,设置此属性,仅支持双击缩放,不支持触摸缩放 mWebView.getSettings().setSupportZoom(true); //设置是否可 ...
- Javascript高级编程学习笔记(63)—— 事件(7)鼠标及滚轮事件
鼠标与滚轮事件 鼠标事件是web开发中最常用的一类事件,毕竟鼠标是最主要的定位设备 DOM3级事件中定义了9个鼠标事件: click:在用户单击主鼠标按钮(一般为鼠标左键)或者按下回车时触发,这一点对 ...
- JavaScript 基础排序的实现(一)
作为一个有追求的前端,忙里偷闲(闲得发慌)地复习了一下基础的排序算法,以此文留念. 本篇主要记录O(n²)复杂度的基础算法O(nlogn)的算法将在下次有空(闲得发慌)时更新 在记录时发现Es6语法中 ...
- 消除浏览器对input的自动填充
在做登录相关的页面时,常遇到这样的现象,浏览器input的自动填充行为. 原因 设置 input 的 type 属性为 password 后,当页面进行过提交,并且允许浏览器记住密码后,那么再次加载该 ...