ubuntu下msmtp+mutt的安装和配置

简介:

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
0 upgraded, 4 newly installed, 0 to remove and 50 not upgraded.
Need to get 1,752 kB of archives.
After this operation, 5,197 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
0 upgraded, 3 newly installed, 0 to remove and 50 not upgraded.
Need to get 265 kB of archives.
After this operation, 1,201 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           587
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 126 emali
account    126
host       smtp.126.com
port       25
from       aaa@126.com
auth       login
tls        off
user       aaa@126.com
password   password
logfile    ~/.msmtp.log
# Set a default account
account default : 126
复制代码

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

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

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

root@BJCGNMON01:~# ls -l .msmtprc 
-rw------- 1 root root 251 Feb 17 10:22 .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@126.com
set envelope_from=yes
复制代码

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

root@BJCGNMON01:~# ls -l .muttrc 
-rw-r--r-- 1 root root 122 Feb 17 10:27 .muttrc

3.测试smtp的信息

3.1msmtp测试

测试命令:

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

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

复制代码
bitnami@linux:~$ msmtp --host=smtp.163.com --serverinfo
SMTP server at smtp.163.com (smtp.163.gslb.netease.com [220.181.12.18]), port 25:
    163.com Anti-spam GT for Coremail System (163com[20121016])
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@126.com

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

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

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

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

blat -install 163.smpt.com aaa@163.com --注册
blat %varlogfile% -to  aaa@126.com,aaa@163.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@126.com bbb@163.com  -a /root/sent </root/mail.txt

4.配置全局的msmtp和mutt

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

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

chmod 777 /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 126 emali
account    126
host       smtp.126.com
port       25
from       aaa@126.com
auth       login
tls          off
user       aaa@126.com
password   password
logfile     /var/log/msmtp.log
# Set a default account
account default : 126
复制代码

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

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

5.测试

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

echo "test" |mutt -s "my_first_test" aaa@126.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 

 
 
 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/p/3568901.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
204 2
|
1月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
3551 3
|
11天前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
113 50
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
129 4
Linux系统之Ubuntu安装cockpit管理工具
|
12天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
32 2
|
1月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
147 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
1月前
|
网络协议 Ubuntu 网络安全
|
1月前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
97 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
1月前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
170 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
1月前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
48 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....