用php socket 发送邮件命令小细节

当fsocketopen  pfsocketopen都被禁用,那就要自己动手使用 socket_create  socket_connect socket_write socket_read 写代码与邮件服务通信了。具体方法详见PHP手册

在用 PHP SOCKET 发邮件 与 邮件服务器通时 ,需要注意的一个小细节

平常写代码都是用 单引号 习惯了,还没用过双引号 此前在网络上也看到过 说使用 单引号比使用双引号 效率高

也许吧 没有亲自去测试过。

不过 在用PHP SOCKET 与邮件服务器通信时发送 命令时 不能使用用单引号 必须要使用双引号,因为 smtp协议要求每条命令后都要跟 \r\n 如果使用单引号包含 \r\n 会被当做字符发送去 不会形成 回车符 换行符,不然命令发给邮件服务器时,是不会识别的,所以要使用 双引号  。

这个是测试过的,因为每条命令发出去后 邮件服务器都会返回相应  状态码跟说明 ,如果用单引号包含 发送出去 邮件服务器是不会 返回任何信息的,没有返回信息,你在测试时就不知道 发出去的命令 邮件服务器是否执行是否识别,搞的你搞不清是什么状况,所以此时就不要去忌讳什么效率问题了果断使用 双引号 包含 命令进行通信,OK,邮件服务器返回的状态码跟说明 出现了 ,此后你就可以好好去调试代码。

分享了 写的发邮件类,有兴趣的同学可以拿到本机测试 http://www.oschina.net/code/snippet_940580_19918

此类已经集成到了 本人写的PHPX框架中http://www.oschina.net/p/phppp

关于PHP空间 一些函数 在自己开发要用到时不知能不能用时 可以使用 function_exists 去检测一下。

不用等 到自己的程序出问题 也搞不清怎么回事。


你可能感兴趣的:(用php socket 发送邮件命令小细节)