CentOS系统的阿里云服务器向外部发送邮件!
大家好,因为个人原因,很长时间都没有在CSDN上发表文章了,其实项目案例还真做了一些,只是没有在这上面上传~
有兴趣的朋友们可以关注以下我的几个频道:
- 微信公众号:空谷小莜蓝
- 个人论坛:http:happylures.com
这几天一直在个人购买的服务器上熟悉Linux常见的用的多的指令,类似运维工作要学的那些东西!
今天,正好学到mail,在尝试向外部发送邮件的过程中遇到了一些问题,记录下来,以便后期查看!
这边是完成的效果图:
用的是163的邮箱发送的邮件!但是现在还有点小问题——发送给QQ邮箱的邮件自动被归档为垃圾邮件,大佬解决了记得跟我说下!@大佬们
下面是具体的一些操作流程,建议按照顺序来操作:
1、安装软件
# 安装sendmail
yum -y install sendmail
# 安装mailx
yum -y install mailx
因为,我已经安装过这两个软件了,因此在执行上面的命令的时候,会出现下面的图:
你要是不确定是否安装成功的话,可以执行下面的命令来看一下文件的路径
which sendmail
which mailx
ll /usr/bin/mailx
ll /usr/sbin/sendmail
2、修改配置文件
sendmail是Linux下优秀的邮件系统,在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如 xxx@localhost.localdomain
这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收,因此需要配置发送者的信息如 xxx@mimvp.com
vi /etc/mail.rc
在文末添加如下内容:
# 下面是设置可以发送外部邮件的命令
set from=XXX@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=XXX@163.com
# password后面的授权码会在后面说明如何寻找
set smtp-auth-password=PHWQFLKFMSZFQCGP
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
说明:
-
from 是发送的邮件地址
-
smtp 是发生的外部smtp服务器的地址
-
smtp-auth-user 是外部smtp服务器认证的用户名,一般与from发件人邮件地址相同
-
smtp-auth-password 是外部smtp服务器认证的用户密码,163邮箱需要授权码
-
smtp-auth 是邮件认证的方式,一般为登录认证
特别提醒:以上配置默认采用 smtp 端口号25发送邮件,但阿里云、腾讯云等都禁止了端口号25,因此需配置ssl 465端口,详见米扑博客:Centos7 配置 sendmail、postfix 端口号25、465
授权码的获取:
点击POP3/SMTP/IMAP
然后填写就ok了!
3、启动sendmail服务,设置开机自启动
systemctl restart sendmail
systemctl enable sendmail
4、发送邮件进行测试
- 发送文件内容
mail -v -s "测试" XXX@qq.com < /etc/passwd
其中,加上了-v参数是为了在执行过程中可以看到进度!
- 通过管道发送内容
echo "hello mimvp.com" | mail -v -s "" xxx@qq.com
- 交互输入发送内容
事实上这一点,我是最不推荐的!因为这个只是利用了输入和输出的特性,当作编辑器使用了,确实可以交互,但是无法直接修改,还不如vi创建编辑文件发送
mail -v -s "测试专用" XXX@qq.com
好了,本篇文章已经结束!感谢你看到这,其实通过shell脚本可以实现对多个邮箱发送邮件,可以试试哦!