CentOS使用SMTP第三方发送邮件

利用QQ邮箱+SMTP来构成邮件服务

1、SMTP协议简介

SMTP称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。它的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。通常它工作在两种情况下:一是邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP是一个请求/响应协议,它监听25号端口,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。

2、SMTP协议工作机制

SMTP通常有两种工作模式。发送SMTP和接收SMTP。具体工作方式为:发送SMTP在接收到用户的邮件请求后,判断此邮件是否为本地邮件,若是直接投送到用户的邮箱,否则向DNS查询远端邮件服务器的MX记录,并建立与远端接收SMTP之间的一个双向传送通道,此后SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方向传送。一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此反复多次。当接收者收到全部邮件后会接收到特别的序列,入伏哦接收者成功处理了邮件,则返回OK应答。

3、SMTP的连接和发送过程

(a)建立TCP连接

(b)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;

服务器端正希望以OK作为响应,表明准备接收

(c)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;

服务器端则表示是否愿意为收件人接收邮件

(d)协商结束,发送邮件,用命令DATA发送

(e)以.表示结束输入内容一起发送出去

(f)结束此次发送,用QUIT命令退出

#在CenrOS搭建:

使用的服务器版本:

[root@zlx ~]# uname -a

Linux zlx 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

因为CentOS模式安装了postfix邮件服务,我们先给他关闭

[root@zlx ~]# /etc/init.d/postfix stop

Shutting down postfix:                                     [  OK  ]

然后要是用mail命令来发送邮件,所以安装

yum –y install mailx

然后编辑配置文件/etc/mail.rc

vim /etc/mail.rc

#使用qq邮箱来发送邮件

set from=XXXXX@qq.com    #你要使用的邮箱地址

set smtp=smtps://smtp.qq.com:465   #使用qq.com的465加密端口

set smtp-auth-user=18163201@qq.com   #登录邮箱使用的账号

set smtp-auth-password=dcnhslrkexdbbgbh  #qq邮箱开启POP3/SMTP服务时提供的密码,

set smtp-auth=login    #用户名和密码登录

set ssl-verify=ignore   #使用ssl加密

set nss-config-dir=/etc/pki/nssdb/   #指定ssl证书所在的位置

QQ邮箱开启POP3/SMTP服务,

设置à账户à POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

点击开启:

然后他会告诉你一个授权码:把这个授权码填到刚才set auth-password=的位置

然后发送测试邮件:

[root@zlx ~]# echo 123 | mail  -s "test Email" 18163201@qq.com

接受成功

刚开始做的时候没有选择ssl加密的方式连接,一直卡在

[root@zlx ~]# echo 123 | mail -v -s "test Email" 18163201@qq.com

Resolving host smtp.qq.com . . . done.

Connecting to 14.18.245.164 . . .   连接这一步,然后紧接着就报错,所以我们选择加密连接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何禁止Namenode格式化

众所周知,Namenode存放Hadoop集群的元数据,Datanode存放数据。如果Namenode被格式化,那意味着整个集群的数据将全部丢失。除非元数据有备...

2888
来自专栏逸鹏说道

上传文件的陷阱

0x00 背景 现在很多网站都允许用户上传文件,但他们都没意识到让用户(或攻击者)上传文件(甚至合法文件)的陷阱。 什么是合法文件? 通常,判断文件是否合法会透...

3507
来自专栏Jerry的SAP技术分享

Red Hat Enterprise Linux(RHEL)中yum的repo文件详解

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于...

2322
来自专栏前端笔记

【HTTP2.0 协议】就“腾讯云 CDN 针对 HTTP 2.0全面公测”浅谈如何启用 HTTP 2.0协议?

HTTPS 是指超文本传输安全协议(Hypertext Transfer Protocol Secure),是一种在 HTTP 协议基础上进行传输加密的安全协...

5959
来自专栏程序员宝库

更快更安全,HTTPS 优化总结

在网站升级到 HTTPS 之后,我们还可以有很多玩意可以折腾,优化 HTTPS,让它更快更安全。这里是一篇 HTTPS 优化的总结,也包含问题的解决方法,不过不...

99311
来自专栏闻道于事

前后端分离之JWT用户认证(转)

在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个requ...

2091
来自专栏喵了个咪的博客空间

4.请求安全-- 结合使用的安全优势总结

#结合使用的安全优势与总结# ##前言## 写到这里基本上笔者在请求中遇到的问题,以及运用到实践中的解决方案,基本上分为,请求唯一性,单设备登录,单点登录,MD...

2514
来自专栏程序手艺人

mbed TLS 简明教程(一)

3425
来自专栏张善友的专栏

开源.NET邮件服务器

LumiSoft Mail Server是一个开源,免费的邮件服务器,能运行在.net/mono上,支持SMTP/POP3/IMAP4/WebMail,支持MS...

4597
来自专栏技术博文

ssh(安全外壳协议)

SSH 为Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础...

32611

扫码关注云+社区

领取腾讯云代金券