Linux系统在服务器端利用SMTP发送邮件
前言
今天试用了一下LNMP自带的数据库备份工具,然后发现还可以,可以备份文件以及数据库备份到本地,然后发送到远程ftp,嗯就是我想要的,可以卸载插件了。
然后群里面有朋友说在备份成功的时候可以发一个邮件通知一下,然后想一下这个东西应该是可以实现的。搜索一下在linux上面有一个Mailx软件这个工具可以实现发送邮箱的功能,然后今天安装了一下,这里面记录一下,使用的过程,然后中间一些坑点。
准备
首先说一下,我这个操作系统是centos7,然后邮箱的话,使用的是QQ企业邮箱。
发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
#海外用户可使用以下服务器
发送邮件服务器:hwsmtp.exmail.qq.com ,使用SSL,端口号465
第一步使用mailx。
首先系统里面正常的话应该会自带mailx,如果没有的话,安装一下也可以很简单的,这个是一个很小巧的一个软件,因为我这里操作系统是centos的,所以这里的命令命令全部使用红帽系的。其他系统的可以自行替换。
yum -y install mailx
第二步配置邮件
配置邮箱需要邮件专以及服务器端然后油箱端的话,必须使用的是smtm这个的话就不用多说了,自己设置一下网上有很多教程,今天的重点不在邮箱端,今天主要说的是在服务器上面发送邮件。
首先的话,25端口就不用想了,基本上都是不行的,所以我们基本上都是要使用465端口的。所以我们在设置的时候首先就要使用465端口,然后我们配置一下,参数和其他的一样就设置SMTP的一些几个值。路径就是这个文件etc/mail.rc
# smtp服务器认证的用户名,这个地方要和下面的用户名账号保持一致,不要有中文 set from=info@mail.gitcafe.net # smtp服务器的地址 set smtp=smtps://smtp.exmail.qq.com:465 # 邮件认证的方式 set smtp-auth=login # smtp服务器认证的用户名 set smtp-auth-user=info@mail.gitcafe.net # smtp服务器认证的用户密码(授权码) set smtp-auth-password=xxxxxoooooo # 忽略验证 set ssl-verify=ignore # 下面这个是证书的存放位置 set nss-config-dir=/root/.certs/
echo "mail content" | mail -s "title" sp91@qq.com
我们试着发送一个邮件,看一下发送给自己就可以了,然后我看了一下他是发送不了的有报错了,这里报错基本上都是跟证书有关的,所以我们必须要进行本地保存一个证书,所以这里面还要重新做一下。
由于我的使用的是QQ企业邮箱,所有的命令里面就是和QQ起源有限相关的如果是其他邮箱的话,可以跟着改一下主要就是改一下他的那个smtp的那个地址就可就可以了。
# 下面这个是证书的存放位置 mkdir -p /root/.certs/ echo -n | openssl s_client -connect smtp.exmail.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -L -d /root/.certs cd /root/.certs certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
在执行这个命令之后,然后再重新试试测试一下是不是能够发送邮件?这次应该是可以发送邮件了吧,反正云落这里是正常收到邮件的。
-- 完 --
-- 完 --
实验看看
@测试 回复可以