1.安装sendmail:
sendmail下载
解压后进入文件夹,将sendEmail移动到/usr/local/bin
cd sendEmail-v1.56
cp sendEmail /usr/local/bin
2.获取邮件发送授权码
登录邮箱-->设置-->账户
3.发送邮件第一坑
sendEmail -f sender@qq.com -t receiver@qq.com -s smtp.qq.com -xu sender@qq.com -xp 123456 -u "The title" -m "this is content"
-f 表示发送者的邮箱
-t 表示接收者的邮箱
-s 表示SMTP服务器的域名或者ip
-u 表示邮件的主题
-xu 表示SMTP验证的用户名
-xp 授权码
-m 表示邮件的内容
然后会报异常:
invalid SSL_version specified at /System/Library/Perl/Extras/5.18/IO/Socket/SSL.pm line 368.
原因是:
解决方案:增加参数-o tls=no 选项,
4.发送邮件第二坑
sendEmail -f sender@qq.com -t receiver@qq.com -s smtp.qq.com -xu sender@qq.com -xp 123456 -u "The title" -m "this is content" -o tls=no
又报异常
sendEmail[21044]: ERROR => ERROR => SMTP-AUTH: Authentication to smtp.qq.com:25 failed.
原因是:阿里云屏蔽了非SSL链接的25发送邮件端口
5.终极解决方案:
5.1 在/etc/ssl/certs 目录下增加3个db
Firefox浏览器*.db文件(cert8.db、key3.db、secmod.db)以支持SSL的方式发送邮件示,三个db存的是证书,公钥,私钥
找不到的可以在这个地址下载 https://dn-zhangguoli.qbox.me/mail.rc_ssl.crt.zip
5.2 配置/etc/mail.rc
# 发件人
set from= sender@qq.com
# 设置邮件发送使用465端口
set smtp=smtp.qq.com:465
# 登录邮箱帐号
set smtp-auth-user=sender@qq.com
# 密码是步骤2中的授权码
set smtp-auth-password=xxxxx
set smtp-auth=login
#启用ssl加密
set smtp-user-starttls
set ssl-verify=ignore
#ssl的加密证书
set nss-config-dir=/etc/ssl/certs
6. 邮件发送
echo "this is content" | mail -s 'this is title' receive@qq.com
参考文章:http://blog.51cto.com/735526/2112807 感谢
如果错误:欢迎拍砖