在此感谢Linux中国-运维群(198889103)里的蓝色风暴,个人qq就不贴出来了(属于个人隐私),其实这篇文件是人家总结,在此表示十分感谢
最近领导提出一个需求,检测数据库里的某个ip,然后telnet某一端口,能过则继续,不通刚,刚同邮件提示相关人员,所以,就要实现在shell里发送邮件到某一邮箱,我用的是mutt+msmtp方法:
mutt可直接yum安装,你也可自行下载源码编译安装,(我用的是yum),msmtp需要下载源码编译安装,
注意:不要用太早版本,否则会出现函数未声明的问题
我用的Centos 6.5
下面编译安装msmtp
./configure --prefix=/usr/local/msmtp
make && make install
安装完后去安装目录下,创建etc文件夹
并且在etc文件夹下创建msmtprc的配置文件:
vim /home/msmtp/msmtprc
写入如下内容:
account default
#你的发送邮件的服务器
host smtp.163.com
发送邮件的端口,一般都是25
port 25
#要从哪个邮箱发出
from youemail@163.com
auth login
#如果使用on的话会报"msmtp: cannot use a secure authentication method"错误
tls off
#你要使用哪个邮箱来发送邮件
#邮箱的用户名
user sendmail@163.com
#邮箱密码,这里是明文的,如果感觉不安全可设置为600权限
password abcdefg123456
#日志文件存放位置
logfile /var/log/mmlog
++++++++++++++++++++++++++++++++++++++++++++++++++
之后设置mutt,配置文件为/etc/Muttrc(可以先办默认的备份)
cp /etc/Muttrc /etc/Muttrc.bak
vim /etc/Muttrc,直接写入一下内容即可,(原来的全部清空)
set sendmail="/home/msmtp/bin/msmtp" #指定msmtp执行的路径
set use_from=yes #指定是否显示来自用户(别名)
set realname="zpf" #发件人别名
set from=18233008775@163.com #指定要使用的email地址
set rfc2047_parameters=yes #解决附件中文乱码的问题
set charset="GBK" #指定发送的邮件文字编码(与服务器保持一致)
set editor="vim"
====================================================================
这段是关于编码的设置:根据需要,我就只设置了set charset ="UTF-8"
# 终端的编码
set charset="UTF-8"
# 外发邮件使用的编码
set send_charset="UTF-8"
# 用中文格式显示日期
set locale="zh_CN.UTF-8"
# 解决没有设置字符编码的信件显示为乱码的问题
charset-hook ^us-ascii$ gb2312
# 解决主题为utf-8的信件标题显示为乱码的问题
charset-hook !UTF-8 gb2312
# 解决未经过MIME编码的信件显示为乱码的问题
#set strict_mime=no
set assumed_charset="gb2312"
# 解决中文附件名为乱码的问题
set rfc2047_parameters=yes
====================================================================
之后即可发送测试邮件了,
例:echo “here is the mail contact”| mutt -s "here is the mail Subject" 363922975@qq.com -a /etc/passwd (-a添加附件)