记录一些常用的函数和瞎折腾的过程……

Linux通过配置第三方smtp来发送邮件

提醒:本文最后更新于 370 天前,文中所描述的信息可能已发生改变,请谨慎使用。

近期折腾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