前言
反正网上各种坑,很多都没有讲清楚,只是大概讲一下,一笔带过就没了,结果根本就不行。
安装依赖
ubuntu中使用外部smtp发送邮件功能,不需要安装那么多东西,只需要heirloom-mailx
sudo apt-get install heirloom-mailx
注意(划重点)
如果,你之前安装了sendmail服务,请查看sendmail服务的启动状态,如果它是运行着的,OK,请stop掉它
sudo systemctl stop sendmail
但请别傻傻的以为stop掉,就可以了,请用
ps aux | grep sendmail
确认sendmail服务真的没有在跑,如果你在ps aux的输出结果中,看到sendmail真的在运行着,请毫不犹豫,kill掉它,拜托。
还有,如果系统中之前安装了postfix服务,也一样,stop and kill it。
反正我是因为这个一直开启着,老是发送不成功,自动跳到本地邮件服务,关掉瞬间就可以了。
配置
设置外部邮箱服务器的smtp
注意(再次划重点!!!!!)
笔者这里就是看到网上各位大神,都在说修改/etc/mail.rc或者/etc/nail.rc文件,添加邮箱的smtp配置。。。妈个鸡,坑死了,笔者的系统是ubuntu16的,所以这两个文件压根都是空的,笔者屁颠屁颠的自己去生成,结果怎么试都GG。
原来在笔者的系统(Ubuntu 16.04.1 LTS )中,配置文件是/etc/s-nail.rc
请注意文件名前面的s-
天呐,真的要命,原来ubuntu16下的heirloom-mailx邮件服务,配置文件是s-nail.rc
好吧,改呗,在/etc/s-nail.rc文件下,在底部添加如下信息
set [email protected]
set smtp=smtp.qq.com:25
#set smtp=smtps://smtp.qq.com:465 #ssl
set smtp-auth=login
set [email protected]
set smtp-auth-password=xxxxxxx #这里不是填QQ密码,而是填授权码,具体因各个平台而不同
添加完成后,不需要做任何重启操作。
邮件发送
经过以上配置,就可以使用heirloom-mailx、mailx、mail命令行发送邮件了。
echo "邮件内容" | mailx -s "邮件主题" -v [email protected]
其中-v 是调试模式,会输出邮件发送信息,有时候邮件发送不成功,用这个参数可以看到原因。
发送邮件很多种写法与方式,笔者这里就不赘述,也不浪费时间写了,百度一大把。
JUST DO IT
后记
1、centos下的安装mailx的配置文件是/etc/mail.rc, 这个跟ubuntu的heirloom-mailx不一样。