首页  |  繁体  |  代码下载  |  网络学院  |  旧版网络学院  |  手机学院  |  加入收藏  |  设为首页  |  联系我们
PHP应用技巧:通过SMTP发送电子邮件-网络学院-中国代码网China-Code.Net-打造中国最大代码、源代码、源码下载网站
您的位置:文章首页 -> 网络编程 -> Php编程 -> PHP应用技巧:通过SMTP发送电子邮件

PHP应用技巧:通过SMTP发送电子邮件

“使用php发送mail”最近已经成为继“register_globals”以后本版第二个新手陷阱,今天特地写这篇文章为新手解惑,希望可以为迷茫的人指明方向。

让我们先从以下这个例子开始说起:

引用:

[root@server~/]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 server.domain.com.br ESMTP Postfix (2.1.0)

MAIL FROM: teste@dominio.com.br

250 Ok

RCPT TO: teste@dominio.com.br

250 Ok

DATA

354 End data with .

teste

.

250 Ok: queued as 7B41F4665A

QUIT

221 Bye

Connection closed by foreign host.

注:以上来自netkiller的postfix文档,偷懒,直接用现成的。

首先是使用telnet来连接本地的25端口,稍微熟悉点网络的人都知道smtp协议使用25端口,这也就是说,现在在连接本地的smtp服务器。

引用:

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 server.domain.com.br ESMTP Postfix (2.1.0)

这些东西是系统输出信息,说明已经连接上了,而且这个smtp服务器是postfix做的。

“MAIL FROM: teste@dominio.com.br”这个命令指明了发件地址是teste@dominio.com.br,“250 Ok”说明这条命令被服务器接受并正确执行,这类似http协议的200、404、500等状态代码。接下来的“RCPT TO: teste@dominio.com.br”指明了收件地址是teste@dominio.com.br。

引用:

DATA

354 End data with .

teste

.

这一段是输入邮件正文,输入“DATA”以后系统提示使用“<回车>.<回车>”来结束输入,正文内容是“teste”。

最后使用“QUIT”退出。

以上就是最简单的一次发送mail的过程,从这个例子我们可以看出,发送mail其实是很简单的事情,实质上也就是建立一个对smtp服务器的连接,然后发送一些简单的命令给它,一封内容简单的邮件就发送出去了,至于更加复杂内容的邮件或者操作,其实也就是在此基础上稍加扩展而已。

把这个过程用php来实现,其实就是利用php的Socket functions、Network Functions等等操作socket的函数来和smtp服务器建立一个连接,然后发送文本的命令给服务器,如果你亲自去看看那些写好的利用smtp协议发送邮件的类或者函数,相信可以印证我的说法。

由于已经存在很多现成的封装得很好的类或者函数替我们完成底层的socket级操作,我们只需要直接拿来用就好,而我也不会费时费神的在本文里去讨论底层的代码,有精神去研究的话,自己找代码来研究吧。现在继续跟我走,我们来点实际的代码来说明如何使用php发送邮件,采用的类是PEAR::Mail。

代码:

require_once 'Mail.php';

分页:  1      全文阅读
相关文章
解析[11] :PHP中的类
解析[1] :管理小型的邮件列表
解析[1] :RedHat6.2上安装apache1.3.12+gd1.8.3+
我可不可以在输出内容后再输出头信息呢?
php4和php5区别
解析[9] :管理小型的邮件列表
解析[9] :如何实现 DES 算法
PHP远程关机操作的代码
解析[2] :如何避免表单的重复提交
解析[1] :如何编译PHP源代码
解析[1] :关于Zend Optimizer
Zend Framework 入门——页面布局
解析[3] :OpenLink ODBC 数据库装置
PHP5 OOP编程之代理与定制异常(1)
Zend公司全球首推PHP认证
解析[10] :如何实现 DES 算法
解析[4] :PHP和asp中的等价关系
解析[3] :聊天室技术(七)-- 帖图
解析[2] :不使用短的标记
网友分享:php与XML、XSLT、Mysql结合运用
为什么要用ZO,难道PHP4还不够快吗?
PHP企业级应用之常见缓存技术篇
解析[19] :怎样在php中使用PDF文档功能
解析[20] :PHP的面向对象编程
解析[14] :PHP4中的COM函数-Windows版
解析[4] :数据校验
PHP中GBK和UTF8编码处理
解析[7] :PHP的面向对象编程:开发大型PHP项目的方法
解析[1] :用PHP操纵Oracle的LOB类型的数据
解析[35] :PHP的编译选项说明
解析[3] :PHPLIB和多个数据库
PHPBB MOD for Google 完全解决方案
解析[2] :if..else 循环
解析[3] : if-else
动态网页制作PHP常用的正则表达式



您正在搜索的关键字为 PHP应用技巧:通过SMTP发送电子邮件