Centos7搭建mailx邮件应用
邮件发送原理图

邮件用户代理(MUA,Mail User Agent)
邮件传送代理(MTA,Mail Transport Agent)
邮件分发代理(MDA,Mail Deliver Agent)
邮件发送过程:
1、A用户通过MUA编写好邮件,并发送
2、该邮件通过MTA,首先发送到QQ邮件服务器
3、QQ邮件服务器分析到目的邮箱地址是163,所以再通过MTA传送到163邮件服务器
4、163邮件服务器收到该邮件
5、由于使用163邮箱的用户有很多,再通过MDA把该邮件发送到正确的用户
6、B用户通过MUA就可以查看A用户发送的邮件。
ps:
通俗的说MUA就是用户使用的客户端,而MTA则是真正发送邮件的发送进程,MUA编写的邮件最终也交由MTA发送至目标端。
mail和mailx即为负责查看、编写邮件和向MTA发送邮件的MUA。mailx是mail的功能加强版。
sedmail,postfix就是负责邮件传输的MTA,将邮件从一个MTA传送至另一个MTA。
使用mail和sendmail发送邮件
CentOS 7+
QQ企业邮箱: smtp.exmail.qq.com
1、安装mail和sendmail
yum install -y mailx sendmail # mail是mailx的别名,mail是MUA,sendmail是MTA
2、配置mail
mail系统及配置文件为/etc/mail.rc,用户级配置文件为~/.mailrc。这里使用全局配置文件,在/etc/mail.rc文件最后添加如下内容:
set smtp=smtps://smtp.xxx.com:465 # 这里填入smtp地址,这里的xxx为qq或者163等,如果用的云服务器,安全组策略要开放465端口,入站和出站都要开放该端口
set smtp-auth=login # 认证方式
set smtp-auth-user=user@xxx.com # 这里输入邮箱账号
set smtp-auth-password=password # 这里填入密码,这里是授权码而不是邮箱密码
set ssl-verify=ignore # 忽略证书警告
set nss-config-dir=/etc/pki/nssdb # 证书所在目录
set from=user@xxx.com # 设置发信人邮箱和昵称
#QQ邮箱的授权码获取方式为:进入邮箱后–>设置–>账户,开启下图1中的SMTP,点击2生成授权码
#POP3/SMTP协议
接收邮件服务器:pop.exmail.qq.com ,使用SSL,端口号995
发送邮件服务器:smtp.exmail.qq.com ,使用SSL,端口号465
3、添加证书
mkdir -pv /etc/pki/nssdb/qq.crt
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/qq.crt #获取邮件服务器证书
certutil -A -n "GeoTrust SSL CA" -t "C,," -d /etc/pki/nssdb -i /etc/pki/nssdb/qq.crt #将证书添加进受信任数据库表
certutil -A -n "GeoTrust Global CA" -t "C,," -d /etc/pki/nssdb -i /etc/pki/nssdb/qq.crt
certutil -L -d /etc/pki/nssdb #列出指定目录下的证书
1、修改配置(/etc/mail.rc)
将 set ssl-verify=ignore 忽略SSL set ssl-verify=strict 检查SSL
并使用 systemctl restart sendmail 重启 sendmail 使配置文件变得有效2、获取邮件服务器证书:
echo -n "" | openssl s_client -connect smtp.xxx.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/xxx.crt #这里的xxx填写qq、163等
示例:echo -n "" | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/qq.crt3、将证书添加到受信任列表:
certutil -A -n 'xxx' -t "P,P,P" -d . -i /etc/pki/nssdb/xxx.crt
-A:表示添加
-n:nickname,可以随意取,例如126或qq
-t:表示受信任的标签,可取值是t/c/p三种或者其组合,
-d:表示证书所在目录
-i:指示证书文件的位置。其它参数可以 man certutil 查看
示例:certutil -A -n 'qq' -t "P,P,P" -d /etc/pki/nssdb -i /etc/pki/nssdb/qq.crt
4、常见命令
查看邮件日志:vi /var/log/maillog
配置邮件:vi /etc/mail.rc
编辑主机地址:vi /etc/hosts
发送邮件测试:echo "mail content" | mail -s "title" ××@qq.com
#echo "123"|mail -s "hello test" 860871133@qq.com
报错解决方案:
Error in certificate: Peer's certificate issuer is not recognized.”提示。证书并没有得到认可,需要再运行一下如下命令:
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
说明:先找到证书位置,在运行"certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt " 。
发送成功,然而,我并没有解决报错问题,期待其他解决方案
Centos7搭建mailx邮件应用的更多相关文章
- centos7搭建postfix邮件服务器
在使用qq等邮件服务器厂商提供的邮件服务后,发现他们的邮件发送数量是有限制的,随着公司的业务的需求下,我们需要搭建一个邮件服务器,邮件服务器可以帮助我们在一些提醒方面和消息推送方面起到帮助. 理论性语 ...
- centos7 搭建GlusterFS
centos7 搭建GlusterFS 转载http://zhaijunming5.blog.51cto.com/10668883/1704535 实验需求:4台机器安装GlusterFS组成一个集群 ...
- Centos7搭建FTP服务器
从网上搜索了好多搭建Centos7搭建服务器的教程都没有成功唯独这个,利用Windows资源管理器连接测试成功. 一.通过yum安装vsftpd yum install -y vsftpd 二.修改v ...
- CentOS7 搭建 SVN 服务器
CentOS7 搭建 SVN 服务器 介绍SVN: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上 ...
- centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试
续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...
- centos7搭建ELK Cluster集群日志分析平台(三):Kibana
续 centos7搭建ELK Cluster集群日志分析平台(一) 续 centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...
- centos7搭建ELK Cluster集群日志分析平台(二):Logstash
续 centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 . 安装Java 8 官方说明:需要安装Java ...
- centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch
应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...
- CentOS7搭建OpenVPN
目录 CentOS7搭建OpenVPN 环境 安装 第一步.安装openvpn及所需软件 第二步.编辑vars文件,根据自己环境配置 第三步.创建服务端证书及key 第四步.创建客户端证书 第五步.拷 ...
- vps vultr centos7 搭建 伟皮恩
vultr 配置 64 bit OS CentOS 7 ×64 20 GB SSD 1 CPU 512MB Memory 500GB Bandwidth √ Enable IPv6 √ ...
随机推荐
- Apache+JK+Tomcat 负载平衡配置
网 上关于 Apache + JK + Tomcat 的集群配置例子很多,按着例子配置下来,基本都能运行,不过,在一些重要的地方却没有进一步的说明.这次公司一个产品就是采用Apache+JK+Tomc ...
- 程序员遇到bug时常见的30种反应
开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定.如何进行修复bug的过程,是值得我们好好推敲的. 我想分享 ...
- golang之代码检查工具golangci-lint
日常开发中,想要保证工程中代码能够正常运行, 一般都会使用vet进行代码静态扫描, 但是每次手动执行命令有点不太方便,如果在每次开发完成之后,git提交的时候都进行下检查就OK了,想好就干!!! 这里 ...
- golang配置读取值viper
viper简介 Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序.它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式.它支持: 设置默认值 从JSON.TOML.Y ...
- Graylog之进阶操作
有关系统的索引,权限,pipline 参考文章: https://mp.weixin.qq.com/s/LROHPjZEJPMsS5M_a3pPFw https://blog.csdn.net/wei ...
- Blazor 组件库 BootstrapBlazor 中Modal组件介绍
组件说明 Model组件是一个模态框组件,可以弹出一个对话框,适合需要定制性更大的场景. 它的样子如下: 其html代码为: <div class="modal-content&quo ...
- 全面解读TaurusDB透明压缩特性,降低数据库使用成本
本文分享自华为云社区<[华为云MySQL技术专栏]TaurusDB透明压缩>,作者: GaussDB 数据库. 背景介绍 某一部分特定比例的客户群体,对数据库的读写性能要求并不高.相比之下 ...
- win10下,更改程序磁贴图标
win8.1后,Windows支持程序图标的定制显示. 一般我们制作win程序时,会给程序设定一个标准的icon,不过这个图标不能满足win10的图标显示需求了,现在我们就用qq为例,定制一下程序图标 ...
- E. Photoshoot for Gorillas
题意 给定一个整数 \(T\),代表共有\(T\)组测试用例,对于每组测试用例: 给定四个整数 \(n,m,k和w(1 \leq n,m \leq 2 * 10^5, 1 \leq w \leq n ...
- 通过云主机调用API,一键训练部署商品问答模型
本文分享自华为云社区<[开发者空间实践指导]CodeArts IDE调用API训练商品问答模型>,作者:开发者空间小蜜蜂. 一.案例介绍 在电子商务领域,售前和售后服务是确保客户满意度和提 ...