Linux通过配置第三方smtp来发送邮件
近期折腾Centos7,搞了个脚本,自动备份mysql数据库,并发送邮件到我的邮箱,网上很多教程,装sendmail、mutt、msmtp之类的,其实Centos7(Centos8,Oracle Linux同样适用)可以简单的配置一下smtp,就可以使用第三方邮箱发送邮件,该方法使用的mailx。
编辑/etc/mail.rc文件:
vim /etc/mail.rc
添加以下第三方邮箱的smtp配置:
set from=my@mail.com
set smtp=smtp.mail.com
set smtp-auth-user=my@mail.com
set smtp-auth-password=mypassword
set smtp-auth=login
注意上面是使用25端口发送邮件,如果服务器默认关闭了25端口且不能打开该端口,可以使用465端口进行发送邮件,具体参考第三方邮箱的smtp的配置信息:
set from=my@mail.com
set smtp=smtps://smtp.mail.com:465
set smtp-auth-user=my@mail.com
set smtp-auth-password=mypassword
set smtp-auth=login
set ssl-verify=ignore
然后可以试试可否发送邮件了,可以使用以下命令:
echo "content" | mail -s "title" to@mail.com
若想发送附件,命令如下(附件:-a):
echo "content" | mail -s "title" -a path/to/file.zip to@mail.com
若想抄送他人,命令如下(抄送:-c):
echo "content" | mail -s "title" -c cc@mail.com -a path/to/file.zip to@mail.com
若想指定显示发件人名字,命令如下(显示发件人名字:-r,尖括号中的发件人地址必须与设置中的from的地址一致):
echo "content" | mail -s "title" -c cc@mail.com -a path/to/file.zip -r "MyName <my@mail.com>" to@mail.com
注意:如果编辑/etc/mail.rc文件时该文件不存在,或是执行发送邮件命令时提示:
-bash: mail: command not found
这是没有安装mailx引起,请安装即可:
yum install mailx