2013年5月10日星期五

【Guiplee原创】msmtp+mutt安装、配置、实现自动发邮件


日前写过linux发送邮件的文章:linux使用命令sendmail发送邮件,sendmail在crontab里是不能运行的,所以sendmail不能用来自动发送邮件。所以博主寻求其他方法,百度,谷歌发现用msmtp+mutt可以实现,于是找来教程按照教程进行安装、配置,结果错误百出啊,很多教程都有错误,不一定适用于所有主机。于是博主自己结合自己的系统写了这篇教程,博主的系统是:CentOS release 5.7 (Final)。邮箱使用的是163邮箱。

查看系统版本:

cat /etc/issue

1. 下载
首先下载msmtp,执行命令:

wget http://nchc.dl.sourceforge.net/project/msmtp/msmtp/1.4.28/msmtp-1.4.28.tar.bz2

2. 安装
解压msmtp-1.4.28.tar.bz2  【常用解压和压缩命令】 :

tar -xjf msmtp-1.4.28.tar.bz2

进入msmtp-1.4.28.tar文件夹 :

cd msmtp-1.4.28

安装msmtp:-prefix 为指定文件夹

./configure –prefix=/usr/local/msmtp

make

make install

3.  配置
手动创建文件msmtp.log

touch /usr/local/msmtp/msmtp.log

切换目录到/root

cd ~

创建并编辑 .msmtprc [注意文件名线面的 点 不要漏掉]

vi .msmtprc

输入下面配置内容:

# Example for a user configuration file

# Set default values for all following accounts.

defaults

logfile /usr/local/msmtp/msmtp.log

account 163

host smtp.163.com

# 邮件发送方的邮件地址

from guiplee@163.com

auth login

# 邮箱的用户名,即登陆163邮箱的用户名

user "guiplee"

# 邮箱密码,即登陆163邮箱的用户名password "45664.com"

# Set a default account

account default : 163

保存退出,不会使用vi 命令的请用本地编辑以后上传到/root目录。

下面配置完成以后进行一下简单的测试:

/usr/local/msmtp/bin/msmtp guiplee@gmail.com

输入任意的内容,回车 然后ctrl+D 退出

然后查看邮箱是否收到邮件,有的时候邮件在垃圾箱里面,没收到邮箱请检查配置文件

4. 安装mutt
我这里是Centos系统,所以我直接用 yum安装

yum install mutt

5. 配置mutt
然后在/root 目录下创建并编辑 .muttrc文件【注意文件名的点】

vi .muttrc

输入如下配置:

set sendmail="/usr/msmtp/bin/msmtp"

set use_from=yes

set realname="发信人的名字,比如:网站备份系统"

# 发件人的邮箱,可随便填,例如:10000@qq.com

set from=root@45664.com

set rfc2047_parameters=yes

6. 测试
发送邮件测试

echo "内容" | mutt -s "主题" 361671574@qq.com

 7. 加入 crontab 是系统自动发邮件
将echo "内容" | mutt -s "主题" 361671574@qq.com保存到mail.sh中,进入/root文件夹

cd ~

vi mail.sh

输入如下内容:

#!/bin/bash

echo "contents" | mutt -s "subject" 361671574@qq.com

给mail.sh执行权限:

chmod +x /root/mail.sh

加入crontab让其自动运行:

crontab -e

每天凌晨1:00自动发邮件:

00 1 * * * /root/mail.sh

* 具体的crontab规则请见下一教程。

至此配置完成,实现系统自动发邮件!

希望对大家有帮助

转载请注明出处:http://blog.guiplee.com

没有评论:

发表评论