SMTP+SSL协议研究-PHP实现

突然的就想尝试一下实现邮件发送协议,尤其是SMTP+SSL之类的方式,SMTP协议全是明文的,写起来倒是不困难,但是到现在还完全不了解+SSL的工作方式

开头

github:https://github.com/huanl-php/protocol

打算以后将实现的协议都放在这里,所以要做好规划

Socket

php socket

先了解好php的socket函数,和c的socket非常像.为什么这里我们使用socket来实现,而不是用swoole,因为在大多数的情况下,swoole扩展并不一定安装了,这是非常不方便的

client类

这个是用来连接服务器的,由这一个类扩展出其他的协议,需要在这个里面写好连接和发送,接收的一些功能

这里不贴代码了,可以去github看:https://github.com/huanl-php/protocol/blob/master/src/Client.php

smtp

这里我拿我的阿里云的邮箱测试,参考这篇文章 邮件实现详解(二)——手工体验smtp和pop3协议,顺便学习了一波telnet,这篇文章是真的详细,我就不写过程了

《SMTP+SSL协议研究-PHP实现》

实现

SMTP代码在这里了- -…然后看看SSL…的工作方式

SSL

SSL相当于是中间的一套层,客户端发送消息经过SSL层加密发送给服务器,然后经过服务器的SSL层又解密给服务器

在php中,ssl套层实现非常的简单…用stream_socket_client连接server,然后使用stream_socket_enable_crypto设置ssl链接,之后fwrite发送数据(大概这就是linux的哲学万物皆文件的体现吧),如果是这样,那么只需要在Client类中,重写一次connect和send那些方法就够了

源码

SSLClient

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.