centos7 利用mailx发送邮件
当需要服务器定时发送邮件到自己邮箱时,一个邮件服务就很重要了,以下主要是mailx的实现,主要是利用
1.安装mailx
|
1
|
yum install mailx -y |
2.使用到的配置文件只有一个,是/etc/mail.rc,通过修改配置文件/etc/mail.rc可以使用外部SMTP服务器,轻松实现linux发邮件功能。
|
1
2
3
4
|
set from=xxxx@qq.com qq邮箱或者其他邮箱set smtp=smtp.qq.com smtp地址 set smtp-auth-user=xxx@qq.com set smtp-auth-password=nibpgbkksmlbbabe 注意:目前大部分的外部邮件服务使用第三方客户端时,都需要使用授权码,上面的smtp-auth-password使用的就是授权码,而不是邮件帐号的密码。具体操作在最后有附图 |

到目前为止,如果不是云主机的话,已经可以实现发送邮件了。若是云主机,则需要下面的操作
一、配置mailx使用SMTP发送邮件:
1、安装mailx;这里直接使用yum install mailx -y 进行安装即可;
2、在/etc/mail.rc配置文件中,在最后面输入以下内容:
|
1
2
3
4
5
|
set from="xxx@126.com"set smtp=smtp.126.comset smtp-auth-user=xxxset smtp-auth-password=邮箱密码set smtp-auth=login |
配置都很简单,这里就不多说了,有两点需要注意的:
1、邮箱需要开启SMTP功能,每个邮箱的开启方法都大同小异;
2、现在大部分邮箱使用SMTP会让你启动一个授权码来代替邮箱密码
具体各个邮箱开启授权码的方式可以直接百度;
测试是否发送成功:
mailx
-s "邮箱测试" xxxx@qq.com < message_file
测试邮件一旦成功,收件箱会马上收到邮件,如果没有收到,则等一会可以看到shell界面的错误提示;
上面配置的是简单的使用25端口的SMTP发送邮件的功能,一般情况下我们使用这个就足够了,这个办法
在网上也很多配置说明,这里就不再浪费时间了,下面我们讲重点,使用TSL发送邮件;
前面说了,阿里云把25端口封了,去申请解封也比较麻烦,于是就想到了用TSL方式,绕过25端口发送邮件;
TSL也就是使用SSL加密的方式,使用465或者其他端口来发送邮件,现在大部分邮箱都支持SSL,具体SSL的端口
地址,也可以查百度,这里是以126邮箱为准,126邮箱使用的是465或者994端口; 下面是详细的配置过程:
1、软件要求:openssl、mailx 12.0以上; 2、既然使用的是SSL协议,那当然是要有证书的了,下面是获取证书的操作;
|
1
2
3
4
|
mkdir -p /root/.certs/echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crtcertutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crtcertutil -L -d /root/.certs<br><br>若需要qq的ssl 只需把第二条命令中的smtp.xxx.com:465 给替换了就行 |
按照上面操作,只要不报错,就是正常的,我们会在/root/.certs下面看到几个证书文件,说明操作成功了;至于为什么
要这么做,不要问我,我也是COPY大神的办法;有兴趣的可以参考最后大神的文章链接;
3、证书配置好了,下面我们就要来配置mail.rc配置文件了,和最开始的不同,这里我们就需要配置和TSL相关的东西了
|
1
2
3
4
5
6
7
|
set from=xxxooo@126.comset smtp=smtps://smtp.126.com:465set smtp-auth-user=xxxooo@126.comset smtp-auth-password=你的授权码set smtp-auth=loginset ssl-verify=ignoreset nss-config-dir=/root/.certs |
其实就多了几个配置stmp前面加了stmps://指定协议类型,后面加上端口号;
启动ssl协议 ,下面指定ssl证书所在目录,就这样。
配置OK了之后,测试发送邮件;
测试能收到邮件就OK,说明发送没问题,至于具体会出现什么报错,可以根据报错的内容进行谷歌;
我这里在发送邮件的时候会提示一个证书不信任的问题,因为不影响正常发送邮件,所以选择忽略;
证书不信任的问题,需要进入存放证书的目录,执行
|
1
|
cd /root/.certs |
|
1
|
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt |
|
1
2
|
最后显示Notice: Trust flag u is set automatically if the private key is present.<em id="__mceDel"> </em> |
后面云主机实现方法 转载自笛声
使用三种方式发送邮件
- 命令行:
mail -s "theme" addressee,回车后输入内容按Ctrl+D发送邮件. - 管道符:
echo "mail main content" | mail -s "theme" addressee - 文件内容作为邮件内容:
mail -s "theme" addressee < /tmp/t.txt
thme是邮件标题,addressee收件人地址
qq邮箱开启smtp

163邮箱


https://www.cnblogs.com/liutao97/p/8387244.html
centos7 利用mailx发送邮件的更多相关文章
- centos 利用mailx发送邮件
这里就已163或者126邮箱为例!阿里云的25号端口好像发送不了,用465端口可以发送成功! 安装:yum install -y mailx 然后就是修改配置文件 set ssl-verify=ign ...
- java利用commons-email发送邮件并进行封装
本例中利用commons-email发送邮件并进行封装,支持html内容和附件:Commons Email是Apache的Commons子项目下的一个邮件客户端组件,它是基于JavaMail的,大大简 ...
- linux利用sendmail发送邮件的方法
Linux利用sendmail发送邮件, 方法1 安装sendmail即可使用, mail -s "test" user@sohu.com bin/mail会默认使用本地sendm ...
- CentOS7利用systemctl添加自定义系统服务【转】
systemctl enable name.service 设置开机启 systemctl disable name.service 删除开机启动指令 systemctl list-units --t ...
- 利用JavaMail发送邮件:smtp.163.com
一.利用JavaMail发送邮件案例: 1.maven项目结构: 2.先在pom.xml里边加入Javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven): 3.配置email ...
- CentOS7利用docker安装MySQL5.7
CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...
- CentOS7利用yum缓存搭建本地源
CentOS7利用yum缓存搭建本地源 环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 ( ...
- ubuntu使用mailx利用SMTP发送邮件
转载:http://www.blogjava.net/jasmine214--love/archive/2010/10/09/334102.htmlLinux下mail利用外部邮箱发送邮件的方法: 1 ...
- CentOS7配置mailx使用外部smtp服务器发送邮件
转自huskiesir的博客: 发送邮件的两种方式: 1.连接现成的smtp服务器去发送(此方法比较简单,直接利用现有的smtp服务器比如qq.新浪.网易等邮箱,只需要直接配置mail.rc文件即可实 ...
随机推荐
- bzoj3252 攻略 贪心+dfs序+线段树
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3252 题解 有一个非常显然的贪心思路:每次选择目前走到那儿能够获得的新权值最大的点. 证明的话 ...
- XML 语法
XML 语法规则 本节的目的是想让你了解 XML 中的语法所依据的规则,避免在编写 XML 文档的时候遇到错误. XML 的语法规则很简单,且很有逻辑.这些规则很容易学习,也很容易使用. 所有的 XM ...
- 【ElicitSearch】启动流程
一.集群启动流程 1.选举主节点 许多节点启动,集群干的第一件事儿就是选主,之后的的流程由主节点触发. 先确定唯一的.大家公认的主节点:再想办法把最新的及其原数据复制到选举的主节点上. 选主是对Bul ...
- C++ 得到系统时间
Time::Time() {//得到系统时间 初始化 time_t t; t=time(NULL); tm *lt; lt=localtime(&t); hour=lt->tm_hour ...
- springboot版本依赖
springboot2.x及以后依赖于jdk1.8及以上. 如图:
- 台哥原创:java五子棋源码(人机对弈)
最近整理以前的代码,发现一些项目还不错,发出来展示下,嘿嘿. 第一个,就是我的五子棋,这是当初学习java编程做的第一个项目. 算起来已经有12年了,后面对源码做了几次重构完善,清爽了很多. 有三种大 ...
- p5341 [TJOI2019]甲苯先生和大中锋的字符串
分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 #include<bits/stdc++.h&g ...
- 将原生JS和jquery里面的DOM操作进行了一下整理
创建元素节点 1.原生: document.createElement("div") 2.jquery: $("<div></div>" ...
- Delphi Indy IDHttp 403 forbidden
http://hbk777.blog.163.com/blog/static/6058086200681594333361/ Delphi Indy IDHttp 403 forbidden 2006 ...
- 鸿蒙系统开源学习经验分享HarmonyOS[www.allharmonyos.com]
分享鸿蒙系统开源知识,分享学习经验,分享鸿蒙系统开发经验 www.allharmonyos.com https://gitee.com/allharmonyos https://github.com/ ...