当需要服务器定时发送邮件到自己邮箱时,一个邮件服务就很重要了,以下主要是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.com
set smtp-auth-user=xxx
set 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.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -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.com
set smtp=smtps://smtp.126.com:465
set smtp-auth-user=xxxooo@126.com
set smtp-auth-password=你的授权码
set smtp-auth=login
set ssl-verify=ignore
set 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发送邮件的更多相关文章

  1. centos 利用mailx发送邮件

    这里就已163或者126邮箱为例!阿里云的25号端口好像发送不了,用465端口可以发送成功! 安装:yum install -y mailx 然后就是修改配置文件 set ssl-verify=ign ...

  2. java利用commons-email发送邮件并进行封装

    本例中利用commons-email发送邮件并进行封装,支持html内容和附件:Commons Email是Apache的Commons子项目下的一个邮件客户端组件,它是基于JavaMail的,大大简 ...

  3. linux利用sendmail发送邮件的方法

    Linux利用sendmail发送邮件, 方法1 安装sendmail即可使用, mail -s "test" user@sohu.com bin/mail会默认使用本地sendm ...

  4. CentOS7利用systemctl添加自定义系统服务【转】

    systemctl enable name.service 设置开机启 systemctl disable name.service 删除开机启动指令 systemctl list-units --t ...

  5. 利用JavaMail发送邮件:smtp.163.com

    一.利用JavaMail发送邮件案例: 1.maven项目结构: 2.先在pom.xml里边加入Javamail依赖,系统会根据坐标自动下载mail包(前提是配置好了maven): 3.配置email ...

  6. CentOS7利用docker安装MySQL5.7

    CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...

  7. CentOS7利用yum缓存搭建本地源

    CentOS7利用yum缓存搭建本地源 环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 ( ...

  8. ubuntu使用mailx利用SMTP发送邮件

    转载:http://www.blogjava.net/jasmine214--love/archive/2010/10/09/334102.htmlLinux下mail利用外部邮箱发送邮件的方法: 1 ...

  9. CentOS7配置mailx使用外部smtp服务器发送邮件

    转自huskiesir的博客: 发送邮件的两种方式: 1.连接现成的smtp服务器去发送(此方法比较简单,直接利用现有的smtp服务器比如qq.新浪.网易等邮箱,只需要直接配置mail.rc文件即可实 ...

随机推荐

  1. bzoj3252 攻略 贪心+dfs序+线段树

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3252 题解 有一个非常显然的贪心思路:每次选择目前走到那儿能够获得的新权值最大的点. 证明的话 ...

  2. XML 语法

    XML 语法规则 本节的目的是想让你了解 XML 中的语法所依据的规则,避免在编写 XML 文档的时候遇到错误. XML 的语法规则很简单,且很有逻辑.这些规则很容易学习,也很容易使用. 所有的 XM ...

  3. 【ElicitSearch】启动流程

    一.集群启动流程 1.选举主节点 许多节点启动,集群干的第一件事儿就是选主,之后的的流程由主节点触发. 先确定唯一的.大家公认的主节点:再想办法把最新的及其原数据复制到选举的主节点上. 选主是对Bul ...

  4. C++ 得到系统时间

    Time::Time() {//得到系统时间 初始化 time_t t; t=time(NULL); tm *lt; lt=localtime(&t); hour=lt->tm_hour ...

  5. springboot版本依赖

    springboot2.x及以后依赖于jdk1.8及以上. 如图:

  6. 台哥原创:java五子棋源码(人机对弈)

    最近整理以前的代码,发现一些项目还不错,发出来展示下,嘿嘿. 第一个,就是我的五子棋,这是当初学习java编程做的第一个项目. 算起来已经有12年了,后面对源码做了几次重构完善,清爽了很多. 有三种大 ...

  7. p5341 [TJOI2019]甲苯先生和大中锋的字符串

    分析 TJOI白给题 建出sam,对于每个点如果它的子树siz和等于k 那么对于这个满足的点它有贡献的长度一定是一个连续区间 直接差分即可 代码 #include<bits/stdc++.h&g ...

  8. 将原生JS和jquery里面的DOM操作进行了一下整理

    创建元素节点 1.原生: document.createElement("div") 2.jquery: $("<div></div>" ...

  9. Delphi Indy IDHttp 403 forbidden

    http://hbk777.blog.163.com/blog/static/6058086200681594333361/ Delphi Indy IDHttp 403 forbidden 2006 ...

  10. 鸿蒙系统开源学习经验分享HarmonyOS[www.allharmonyos.com]

    分享鸿蒙系统开源知识,分享学习经验,分享鸿蒙系统开发经验 www.allharmonyos.com https://gitee.com/allharmonyos https://github.com/ ...