(独家)Linux邮件报警神器 mutt

  在Linux里,很多人都会使用到邮件报警,而且这方面的软件也众多,常见的像SendMail, sendEmail, Postfix等等,
它们的优缺点我就不说了,使用上也各有所爱。今天我要给大家介绍的mutt,也许大家也不陌生,
网上太多关于mutt和sendmail或者跟msmtp合作使用的教程。其实,mutt非常的强大只要你仔细研究一下官方文档
(链接http://www.mutt.org/doc/manual)
   
系统环境:CentOS 6.5

在正式安装mutt之前,先检查一下2个安全组件。
OPENSSL: openssl version -a #检查安装及版本信息
SASL(系统一般已经自带): rpm -qa | grep sasl
查询到如下即可:
cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64

如果sasl没有运行,先启动:
/etc/init.d/saslauthd start
最好是加入到自启动项目中去:
chkconfig saslauthd on
因为发送邮件的时候会需要用到安全认证。

1,安装
官方网站上下载最新版本,或者直接在本站下载,我已上传至51下载中心。下载地址
# 解压后进入mutt目录
cd /root/mutt-1.6.0

# 编译:
./configure --prefix=/usr/local/mutt --enable-pop --enable-smtp --with-ssl --with-sasl
#说明
--enable-pop 启用pop
--enable-smtp 启用smtp
--with-ssl --with-sasl 在启用上述协议的情况下,必须使用更安全的加密
PS: 因为我用的测试帐号是QQ邮件,qq邮件使用smtp协议的时候要求必须使用ssl安全连接,
而在mutt里使用安全连接又必须使用sasl加密,所以上述2个安全组件在编译安装的时候得加上。
要不然发送邮件的时候会出现“SMTP authentication requires SASL”或者另外一个跟ssl有关的错误。

# 安装
make && make install

2,配置文件
方法1:安装好后,拷贝一份安装目录下/usr/local/mutt/etc/的配置文件Muttrc到/root/.muttrc,
也可以直接修改配置文件,设置读取的配置文件路径到安全目录,这样就无需拷贝了。
默认设置: set alias_file="~/.muttrc"

方法2:cat /usr/local/mutt/etc/Muttrc | grep -v ^# | grep -v ^$ > ~/.muttrc
这样都可以得到默认的配置文件信息。

安装完成后,我们仅需要设置的信息如下:
set folder="./Mail" #设置本地的收件箱,如果不设置发送邮件的时候会提示
set from="123456789@qq.com" #设置发件人地址
set realname="张三" #发件人姓名
set smtp_pass="999999" #密码
set smtp_url="smtps://123456789@smtp.qq.com:465/" #发件人帐号和邮件主机信息,QQ邮箱必须使用安全连接
set use_envelope_from=yes #使用自定义发件人邮箱
set use_from=yes #使用自定义发件人姓名

3,测试
mutt-1.6版本的发送邮件的语法跟1.4版本有些微的差别,具体命令如下:
mutt -s "Title使用" -a /usr/local/mutt/content.txt -- rep@shoujianren.com < /root/1
#说明
-s 邮件标题
-a 附件
-- 后面跟上收件人信息
< 后面是邮件正文内容,也可以在前面echo xxx的形式给出。如下:
  echo xxx|mutt -s "Title使用" -a /usr/local/mutt/content.txt -- rep@shoujianren.com
  
看吧,无需与其它软件合作,mutt就可以独立完成发送邮件,当然,接收也没问题,只是在邮件报警这个需求上用不着。


其中一个错误信息:
[root@x63 mutt]# echo "Hello" | mutt -s "Title" -- xxx@xxxx.com
TLSv1.2 connection using TLSv1/SSLv3 (AES256-SHA256)
SMTP authentication requires SASL
Could not send the message.


发送成功的信息:
[root@x63 mutt]# echo "Hello3" | mutt -s "Title" -- xxx@xxxx.com
TLSv1.2 connection using TLSv1/SSLv3 (AES256-SHA256)

本文出自 “方向感” 博客,请务必保留此出处http://itech.blog.51cto.com/192113/1768002

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
一、环境介绍 接到通知,要求网站由http改为使用https,目前我的网站前端架构如下图所示: 假设我们有两台物理机,每台物理机上面有很多的tomcat容器,前端使用的是haproxy进行的http层负载均衡,再前端我们使用了LVS负载均衡,整个LVS使用的是DR模型。 刚开始我打算把tomcat改成https,设置成之后再设置haproxy的时候,发现haproxy不能再使用负载均衡了,因为SSL是在第四层的,所以这个方案就结束了,下面我就尝试在haproxy层设定SSL,到后端还使用普通的连接。 二、
Apache Httpd负载均衡Tomcat并实现Session Sticky和Session Cluster 大纲 前言 实验拓扑 实验步骤 安装配置tomcat 安装配置Apache Httpd并测试 实现session sticky 实现Session Cluster 总结 前言 上篇文章我们介绍如何构建一个 LANMT 平台并搭建一个 jspxcms , 这次我们介绍使用 apache httpd 负载均衡 Tomcat 并实现 Session Sticky 和 Session Cluster 实
简介 Oliver运维管理系统是本博主自主开发的首款运维管理系统,在学习python的过程中一直想尝试开发一款属于自己的运维管理系统,但由于水平有限,时间又不太多就只能慢慢摸索,也是一边摸索一边开发,其间修改了无数次,请教了无数次开发同事,最终于今年4月份成形,目前已经应用于生产环境。由于水平有限,有些功能还不尽完善,后续会逐步改进,目前已经开源出来放到github上提供下载,希望这款软件能够帮到那些刚开始学习python运维开发的小伙伴,也算为Oliver打个小广告。 下载: git clone htt
Oracle Study之-AIX6.1构建Oracle 11gR2 RAC(2) 一、修改系统内核参数 [root@aix209 app]#chdev -l sys0 -a ncargs=256 sys0 changed [root@aix209 app]#lsattr -El sys0 -a ncargs ncargs 256 ARG/ENV list size in 4K byte blocks True [root@aix209 app]#vmo -p -o minperm%=3 Setting

归来吧,haproxy - 2016-04-25 15:04:10

担心的事情,终于来了。小弟要走,怎么留也留不住,没办法啊,活还得继续干,于是又只好挽起袖子,打开securecrt,执行一行又一行的命令。 这两天,接到一个任务,需要部署一套负载均衡,经过讨论和权衡,决定使用haproxy + keepalived。 通常的套路是: (1)浏览器访问软件网站( www.haproxy.org); (2)记录下软件包下载的url; (3)登录服务器系统,用wget url下载包; (4)解包、安装、配置... 哪知道进行到第一步的事后,就卡住了,熟悉而恼人的场景出现在眼前。
公司app(安卓)应用扩展ios平台(安卓客户端已经运行一年),由于ios自带emoji表情字符集,api会出现问题,mysql数据库更换utf8mb4,原字符集utf8。 utf8mb4和utf8到底有什么区别呢?原来以往的mysql的utf8一个字符最多3字节,而utf8mb4则扩展到一个字符最多能有4字节,所以能支持更多的字符集。 主要思想导出数据,重新建库插入数据 1.查看当前数据库是否支持utf8mb4(貌似版本低于5.5.3的不能用,没测试) mysqlshowcharsetlike'utf8
0.说明 在自己好好总结并对Python装饰器的执行过程进行分解之前,对于装饰器虽然理解它的基本工作方式,但对于存在复杂参数的装饰器(装饰器和函数本身都有参数),总是会感到很模糊,即使这会弄懂了,下一次也很快忘记,其实本质上还是没有多花时间去搞懂其中的细节问题。 虽然网络上已经有很多这样的文章,但显然都是别人的思想,因此自己总是记不牢,所以花点时间自己好好整理一下。 最近在对《Python核心编程》做总结,收获了不少,下面分享一下我自己对于Python装饰器的理解,后面还提供了一个较为复杂的Python装

Centos 7 DNS配置及理论详解 - 2016-04-18 17:04:52

DNS是什么及BIND讲解内容 域名系统 (英文:Domain Name System,缩写:DNS)是internet的一项服务。它作为将域名和IP地址相互映射服务,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。 讲解内容: DNS名称解析方式 DNS查询类型 DNS服务器类型 区域数据库文件详解 Centos7安装配置BIND BIND主从服务器配置 BIND安全相关配置 BIND view视图配置 一、DN
欢迎加入QQ群 (423730487)!4月9日在上海有一场线下活动,盆盆还有微软Azure Stack产品组专家会和大家一起分享技术,届时会在QQ群里直播哈。 添加盆盆的微信(markpah),我会把您拉到微信群。 为什么要学习Azure Stack?因为这是学习Azure的最佳工具。 例如Azure里的经典PaaS服务WebApp,是一款广大人民群众喜闻乐见的服务,很多客户用来搭建自己的数字化营销方案。PaaS服务让我们不再困扰于日常的运维,极大地降低了成本。 但是Azure的WebApp背后是什么原
最近在参与负责某线上MySQL项目时,客户要求 实现MySQL数据库备份、复原和前滚的全流程自动化 。 在 RHEL下使用Perl语言编写脚本结合CRON指令来共同实现MySQL数据库备份、复原和前滚流程的自动化 ,整个过程很轻松顺利且效果也比较满意。同时,由于所负责的另一个项目是线下DB2环境,那么在 Windows Server下该如何实现DB2数据库备份、复原和前滚流程的自动化 呢? 因为Windows的命令行功能远没有Linux强大,所以实现起来稍微曲折些,但是基本上还是可以实现的。经过简单的编写