1.mutt+msmtp的安装

  默认情况下smokeping发送邮件使用sendmail,但是sendmail配置起来真心不是一般的麻烦,而且也没有必要,完全大材小用了,所以我就想用mutt+msmtp的方案来发送告警邮件。
  首先安装mutt和msmtp这两个软件。
  如果是在在线安装,那么直接apt-get install就好了,会自动帮助我们安装关联包。
  如果是在离线环境下,我们可以先在有线环境下安装。然后再将用到的安装包拷贝的离线环境下安装(这是因为使用apt-get install会将所有安装包及关联包下载到/var/cache/apt/archives目录下),然后使用以下命令逐个安装deb安装包。
sudo  dpkg  -i  package.deb

以下是在线安装方式,我们可以在安装信息中看到有哪些依赖包,我们记住这些依赖包的名称,到时候拷贝出来就好了。

bitnami@linux:/var/cache/apt/archives$ sudo apt-get install mutt
[sudo] password for bitnami:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libgpgme11 libpth20 libtokyocabinet8
Suggested packages:
gpgsm urlview aspell ispell mixmaster
The following NEW packages will be installed:
libgpgme11 libpth20 libtokyocabinet8 mutt
upgraded, newly installed, to remove and not upgraded.
Need to get , kB of archives.
After this operation, , kB of additional disk space will be used. bitnami@linux:~$ sudo apt-get install msmtp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libgsasl7 libntlm0
Suggested packages:
msmtp-mta
The following NEW packages will be installed:
libgsasl7 libntlm0 msmtp
upgraded, newly installed, to remove and not upgraded.
Need to get kB of archives.
After this operation, , kB of additional disk space will be used.
Do you want to continue [Y/n]?

2.配置msmtp和mutt

2.1配置msmtp

创建msmtp日志文件“.msmtp.log”,在.msmtprc当中指定,注意这里的"."表示是隐藏文件,内容为空。
$ sudo vim ~/.msmtp.log

配置msmtp配置文件“.msmtprc”

#Accounts will inherit settings from this section
defaults
# A first gmail address
account gmail
host smtp.gmail.com
port
from username@gmail.com
user username@gmail.com
password password
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# A second gmail address
account gmail2 : gmail
from username2@gmail.com
user username2@gmail.com
password password2
# A freemail service
account freemail
host smtp.freemail.example
from joe_smith@freemail.example
user joe.smith
password secret
# A provider's service
account provider
host smtp.provider.example
# A emali
account
host smtp..com
port
from aaa@.com
auth login
tls off
user aaa@.com
password password
logfile ~/.msmtp.log
# Set a default account
account default :

配置.msmtprc权限,以下设置是只给.msmtprc的所属用户读和写的权限,其他人没有任何权限

$ sudo chmod  .msmtprc --设置配置文件权限

如果要查看.msmtprc的所属用户,可以通过以下命令查看,我们可以看到,.msmtprc这个文件所属用户是root用户,组是root组。

root@BJCGNMON01:~# ls -l .msmtprc
-rw------- root root Feb : .msmtprc

以上设定很重要,使用什么账户去调用msmtp,那么该账户就要有对 .msmtprc文件的读写权限。

2.2配置mutt

mutt配置分为两种,看你是想全局生效还是某一单一用户生效。如果是系统全局设置,修改/etc/Muttrc这个配置文件;如果使用某个系统用户,可以需要修改“~/.muttrc”这个文件。
#sudo vim ~/.muttrc
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="name"
set from=aaa@.com
set envelope_from=yes

我只想给我当前root用户配置mutt功能,所以使用后者。修改完毕以后也需要查看这个文件的读写权限,当前是root账号要使用mutt功能,那么这个.muttrc就必须对于root账户有读写权限。查看权限的方法如下:

root@BJCGNMON01:~# ls -l .muttrc
-rw-r--r-- root root Feb : .muttrc

3.测试smtp的信息

3.1msmtp测试

测试命令:

测试配置文件:msmtp -P
测试smtp服务器:msmtp -S

还有一种方法是在配置msmtp之前就可以进行测试,比如测试163的smtp的命令如下:

bitnami@linux:~$ msmtp --host=smtp..com --serverinfo
SMTP server at smtp..com (smtp..gslb.netease.com [220.181.12.18]), port :
.com Anti-spam GT for Coremail System (163com[])
Capabilities:
PIPELINING:
Support for command grouping for faster transmission
STARTTLS:
Support for TLS encryption via the STARTTLS command
AUTH:
Supported authentication methods:
PLAIN LOGIN
This server might advertise more or other capabilities when TLS is active.

从返回信息中我们可以看到,这个smtp是支持TLS的,验证方式支持 PLAIN 和 LOGIN

3.2测试邮件

命令行输入:
echo "test" |mutt -s "my_first_test" aaa@.com

如果是多个收件人,那么使用空格或者逗号分开即可,测试命令:

echo "test" |mutt -s "my_first_test" aaa@.com bbb@.com
echo "test" |mutt -s "my_first_test" aaa@.com,bbb@.com

(PS:windows邮件客户端blat,2014-6-23)

而对于windows下的邮件发送客户端blat来说,只能使用逗号分隔多个邮件列表,测试命令如下:

blat -install .smpt.com aaa@.com --注册
blat %varlogfile% -to aaa@.com,aaa@.com" -u "aaa" -pw "aaa" -subject "content" -attach %varlogfile% --发送

我们上面都是将echo后面的内容作为邮件正文,也可以将邮件的内容写在一个文件里面,然后将这个文件的内容发送出去。

touch mail.txt --创建邮件文本
vim mail.txt --编辑文本内容
this is is my first test email --文本内容

发送邮件,下面的示例是发送一个标题为linkmail,收件人是aaa@126.com bbb@163.com,附件是 /root/sent ,邮件内容是的mail.txt中的内容。发送脚本如下

mutt -s "linkmail" aaa@.com bbb@.com  -a /root/sent </root/mail.txt

4.配置全局的msmtp和mutt

1.创建/var/log/msmtp.log
touch /var/log/msmtp.log

为了让所有用户都能读写这个日志文件,我们将其权限设置为777

chmod  /var/log/msmtp.log

如果要修改用户、组、其他的单独权限,可以使用以下命令。u:user, g:group, o:other。

chmod u+rwx
chmod g+rwx
chmod o+rwx

2.创建msmtp的配置文件/etc/msmtprc

touch /etc/msmtprc

3.配置msmtprc

#Accounts will inherit settings from this section
defaults # A emali
account
host smtp..com
port
from aaa@.com
auth login
tls off
user aaa@.com
password password
logfile /var/log/msmtp.log
# Set a default account
account default :

4.配置mutt的全局配置文件/etc/Muttrc,在其最后加入以下信息:

set sendmail="/usr/bin/msmtp" #根据实际情况配置,默认安装的就是这个地址。
set use_from=yes
set realname="name"
set from=aaa@.com
set envelope_from=yes

5.测试

在执行测试命令的时候,会自动将邮件副本写入到“~/sent”当中。

echo "test" |mutt -s "my_first_test" aaa@.com

root用户发送邮件,邮件被保存在/root/sent当中,enadmin账户发送邮件,邮件被保存在/home/enadmin/sent。如果是其他类似于enadmin的用户,需要首先创建/home/username这个目录,然后修改这个目录的权限。

mkdir /home/nagios
chown -R nagios.nagios /home/nagios
测试mutt发送邮件,会自动穿件/home/nagios/sent文件。
 

6.常见问题:

错误1:msmtp: account default not found: no configuration file available
msmtp有bug,必须手动指定对应的配置文件
更改/etc/Muttrc中set sendmail="/usr/bin/msmtp"为set sendmail="/usr/bin/msmtp -C .msmtprc"
错误2:msmtp: GNU SASL: Base 64 coding error in SASL library
遇到Base64 编码错误
更改~/.msmtprc中auth login
为 auth plain

 
 
 

ubuntu下msmtp+mutt的安装和配置的更多相关文章

  1. Ubuntu 下 firebird 数据库的安装和配置

    Ubuntu 下 firebird 数据库的安装和配置 1.简介 本文主要是 Ubuntu 下 firebird 数据库的安装和目录迁移,同样适用于 Debian 系统:Ubuntu 20.0.4 f ...

  2. Ubuntu下LaTex中文环境安装与配置

    转载自:http://www.linuxidc.com/Linux/2012-06/62456.htm LaTeX是一个强大的排版软件,但是其最初只是为英文排版而设计的.为了使其能够胜任中文排版的重任 ...

  3. ubuntu下nfs服务器的安装与配置

    nfs服务器的安装和配置 1.安装nfs 服务器,前提是你的系统能连上网. 2.设置/etc/exports配置文件 (1) 进入/etc/exports配置文件 (2) 在最后一行加入红色那行,/h ...

  4. ubuntu 下串口调试工具 minicom安装与配置cutecom安装

    安装minicom:     $sudo apt-get install minicom 配置minicom:    如果您的系统的默认语言不是英文,请执行下面的命令:     $LANG=EN    ...

  5. Ubuntu下redis数据库的安装和配置详细过程

    Redis 安装 当前redis最新稳定版本是4.0.9 当前ubuntu虚拟机中已经安装好了redis,以下步骤可以跳过 最新稳定版本下载链接:http://download.redis.io/re ...

  6. ubuntu 下串口调试工具 minicom安装与配置

    检查系统是否支持USB转串口: lsmod | grep usbserial 如果有usbserial,说明系统支持USB转串口. 识别串口设备: 插上USB转串口,在终端输入命令: #dmesg | ...

  7. ubuntu下samba服务器的安装与配置

    参考网址:http://jingyan.baidu.com/album/00a07f38b9194082d028dc08.html?picindex=9 sudo service smbd resta ...

  8. ubuntu下opencv2.4.9安装测试

    ubuntu下opencv2.4.9安装测试 whowhoha@outlook.com 一.依赖包安装 1.  build-essential 软件包 sudo apt-get install bui ...

  9. Ubuntu16.04下LAMP环境的安装与配置

    Ubuntu16.04下LAMP环境的安装与配置 最近做个实验需要用到Ubuntu环境的靶场,所以这里介绍下Ubuntu环境下LAMP的安装与配置,话不多说,我们gkd! 1.Apache2的安装 首 ...

随机推荐

  1. 华中邀请赛现场赛F题 Seats

    题目链接:http://acm.whu.edu.cn/land/problem/detail?problem_id=1552 解题报告:题目意思应该很清楚,就是有n个人,分别属于7个班级,然后他们坐成 ...

  2. 日期控件-my97DatePicker用法

    网上资料,用法,只能选最近30天等等:http://jingyan.baidu.com/article/e6c8503c7244bae54f1a18c7.html

  3. Python-Analysis-Malware

    Python恶意软件分析应用-PEfile 0x1.前言 要想对恶意代码快速分析,Python是一门必须要掌握的编程技能.因为它是跨平台的,而且容易阅读和编写.许多开源安全工具也是用Python写的. ...

  4. 设置linux的console为串口【转】

    转自:http://blog.chinaunix.net/uid-27717694-id-4074219.html 以Grub2为例:1. 修改文件/etc/default/grub   #显示启动菜 ...

  5. Android Studio引用第三方jar包(例如:使用LitePal)

    如何使用LitePal的教程网上很多,不过对于新手,这些教程中遗漏了将第三方jar包拷贝到app->libs路径下后,还需要add as library. 下载LitePal 这时操作步骤如下: ...

  6. contos 7创建阿里云镜像源

    今天在ESC上安装mariaDB,发现centOS 7默认的yum源上的mariaDB版本过低,然后又镜像到网易上,发现网易源上没有mariaDB,几经折腾才发现阿里镜像上mariaDB版本较新.更改 ...

  7. MVC Autofac依赖注入

    通过Dll实现全部类的属性注入,该演示实例主要通过多层架构中单一的对象方式来演示,没有采取接口的方式, 新建AutoFacHelper类,如下代码: public class AutoFacHelpe ...

  8. Android 7.0 新增功能和api

    Android 7.0 Nougat 为用户和开发者引入多种新功能.本文重点介绍面向开发者的新功能. 请务必查阅 Android 7.0 行为变更以了解平台变更可能影响您的应用的领域. 要详细了解 A ...

  9. 网络图片转换到本地并转换成base64位

    /** * 网络图片转换到本地并转换成base64位 * @param $url * @return string */ public function imgzhuanhuan($url) { // ...

  10. .NetCore下使用Prometheus实现系统监控和警报 (一)介绍【译】

    [译]原文https://prometheus.io/docs/introduction/overview 什么是Prometheus? Prometheus是一个开源系统监控和警报工具包,最初起源于 ...