简单生活
返回文章列表
868 字5 分钟

CentOS 安装配置 msmtp 和 mutt

软硬兼施#VPS/CentOS

一个月前购买了国内的一个 VPS,一边从零开始学习 Linux,一边感受 Linux 的强大。前几天不小心把 VPS 折腾得无法重启了,求助服务商也没能把资料找回来,因为没有备份又找不回数据,只好重装了系统。出了问题才知道备份的重要性,于是开始研究备份,确切地说是自动备份。网上流传最多的文章就是使用 mutt 发送邮件附件进行备份的方法,照葫芦画瓢跟着就学会了,在 IXWebHosting 的主机上成功应用(IXWebHosting 的主机也是支持 cron 的)。

可今天回到自己的 VPS,sh 脚本写好以后,文件成功打包,mutt 命令执行了却发送不了邮件。搜索了一会才明白原来是 mutt 需要一个发信的程序,msmtp 刚好是一个不错的选择。网上关于 msmtp 的文章也很多,下面是我对几篇文章加工注释的结果,希望对像我一样的 Linux 新手有用。

一、安装配置 msmtp

1. 下载与解压

先使用 PuTTY 等 SSH 工具连接登录 VPS,执行以下命令下载并解压:

Terminal window
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.30.tar.bz2?big_mirror=0
tar jxvf msmtp-1.4.30.tar.bz2

2. 编译安装

进入解压目录,配置并编译安装到 /usr/local/msmtp:

Terminal window
cd msmtp-1.4.30
./configure --prefix=/usr/local/msmtp
make
make install

3. 配置 msmtp 账号

切换到安装目录,创建配置文件夹 etc 并新建 msmtprc 配置文件:

Terminal window
cd /usr/local/msmtp
mkdir etc
vi /usr/local/msmtp/etc/msmtprc

编辑内容如下:

# Set default values for all following accounts.
defaults
logfile /usr/local/msmtp/msmtp.log
# The SMTP server of the provider.
account test
# SMTP邮件服务器地址
host smtp.qq.com
# 发送的邮件Email
from xiaobaichi@qq.com
auth login
# 邮件服务器登录账号
user xiaobaichi@qq.com
# 邮件服务器登陆密码
password 123456
# Set a default account
account default: test

按 Esc,输入 :wq 保存并退出。

由于配置文件中包含明文密码,出于安全考虑需要收紧文件访问权限:

Terminal window
chmod 600 /usr/local/msmtp/etc/msmtprc

4. 测试发信

执行以下命令向指定邮箱发送测试邮件:

Terminal window
/usr/local/msmtp/bin/msmtp youremail@test.com

输入任意测试正文字符,然后按 Ctrl + D 结束输入并发送,检查目标邮箱是否收到邮件。

如果遇到问题,可以查看配置的日志文件排查原因:

Terminal window
cat /usr/local/msmtp/msmtp.log

二、安装配置 mutt

1. 确认 mutt 安装状态

一般 Linux 发行版都会预装 mutt。可以使用以下命令检查:

Terminal window
which mutt
# 若提示找不到命令,可通过 yum 安装:
yum install -y mutt

2. 编辑 mutt 配置文件

编辑 /etc/Muttrc,配置 mutt 的全局发信选项,修改或添加以下几行:

Terminal window
set from="xiaobaichi@qq.com"
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="发件人"
set editor="vi"

提示

这里的发件地址最好与 msmtp 中配置的邮箱一致,否则部分 SMTP 服务器会校验拒绝。

3. 测试 mutt 结合 msmtp 发信

使用管道将内容传递给 mutt 发送测试邮件:

Terminal window
echo "这是一封测试邮件正文" | mutt -s "测试主题" youremail@test.com

测试成功后,就可以编写 Shell 脚本使用 mutt 打包数据库与附件,结合 crontab 实现全自动定期定时异地邮件备份了。

历史留言归档

2
静态只读归档
囧
囧啊囧
我是手动备份,但是有好久没下载到本机了。
博
狼的旋律博主
看我的icon,嘎嘎