Linux: 邮件
mutt+msmtp做linux邮件客户端
MUTT和MSMTP
登录163的邮件服务器发邮件。为什么非要登录163邮箱呢?因为我测试过qq邮箱、yahoo还有sina的邮箱都发布出去,只有163的一连就通了,我估计是邮箱设置里验证的关系,也不想去深研究他了。下面给出具体步骤
首先去163申请个免费邮箱,收费免费都一样
1.MSMTP安装
centos6
wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2
centos7
wget http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.6.5/msmtp-1.6.5.tar.xz
tar xvf msmtp-1.4.17.tar.bz2 cd msmtp-1.4.17 ./configure --prefix=/usr/local/msmtp --with-ssl=openssl make && make install cd /usr/local/msmtp/ mkdir etc #配置文件目录和配置文件都要自己建 cd etc
1 创建配置文件
cat /usr/local/msmtp/etc/msmtprc # Set default values for all following accounts. defaults logfile /usr/local/msmtp/msmtp.log timeout 10 # The SMTP server of the provider. account acc1 # SMTP邮件服务器地址 host smtp.ym.163.com # 发送的邮件Email from [email protected] auth login # 邮件服务器登录账号 user [email protected] # 邮件服务器登陆密码 password 1qaz@WSX3edc # ssl #port 994 tls on tls_certcheck off #使用网易邮箱必须有下面这句 tls_starttls off # Set a default account account default : acc1
2 简单测试一下
/usr/local/msmtp/bin/msmtp [email protected]
随便输入一些内容用ctrl+d结束。然后到邮箱看看有没有收到,如果这里提示错误按照错误代码找原因,或者看看上面的日志文件
3 异常处理
异常:msmtp: the server sent an empty reply
解决方法:tls_starttls off
异常:msmtp: TLS certificate verification failed: the certificate hasn’t got a known issuer
解决方法:证书有误,tls_certcheck off,或者重新创建证书,然后配置证书。
异常:msmtp: account zlebank from /usr/local/mutt/etc/msmtprc: tls requires either tls_trust_file (highly recommended) or tls_fingerprint or a disabled tls_certcheck
解决方法:tls_certcheck off,或者创建证书,然后配置证书: tls_trust_file [你的证书路径]
异常:msmtp: support for TLS is not compiled in
解决方法:yum -y install gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel
一键配置msmtp+mutt发送TLS邮件
将install.sh里的邮箱密码改为自己的邮箱密码。
执行install.sh前需下载依赖 yum -y install ncurses-devel gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel
2. 安装 MUTT
如果是CentOS的话直接用yum就好了
yum install mutt
1 修改配置文件,
vim /etc/Muttrc
set hostname=jenkins01 set sendmail="/usr/local/msmtp/bin/msmtp" set use_from=yes set realname="互动作业_Android" set editor="vim" set charset="utf-8"
简单的4行就可以了
2 测试
echo "testmail" | mutt -s "测试" [email protected] -a /etc/hosts
-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名
mutt -s "测试" -a /etc/hosts -a /etc/apple [email protected] < /tmp/imax.txt
这个的意思就是以 /tmp/imax.txt 文件的内容作为邮件内容。