使用PHP通过SMTP发送邮件新手指南

由于php没有提供现成的smtp函数,却提供了一个功能不甚灵活的mail()函数,这个函数需要服务器配置上的支持,并且不支持smtp验证,在很多场合无法正常的工作,因此不建议使用。本文的目的在于为新手指明方向,并没有涉及那些高级的内容,一来本身水平有限,二来也担心不能准确的讲述相关的概念,进而对各位造成误导,还请自行深入学习。

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

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

  1. [root@server~/]# telnet localhost 25 
  2. Trying 127.0.0.1… 
  3. Connected to localhost. 
  4. Escape character is '^]'
  5. 220 server.domain.com.br ESMTP Postfix (2.1.0) 
  6. MAIL FROM: teste@dominio.com.br 
  7. 250 Ok 
  8. RCPT TO: teste@dominio.com.br 
  9. 250 Ok 
  10. DATA 
  11. 354 End data with <CR><LF>.<CR><LF> 
  12. teste 
  13. 250 Ok: queued as 7B41F4665A 
  14. QUIT 
  15. 221 Bye 
  16. Connection closed by foreign host. 

注:以上来自netkiller的postfix文档,偷懒,直接用现成的,首先是使用telnet来连接本地的25端口,稍微熟悉点网络的人都知道smtp协议使用25端口,这也就是说,现在在连接本地的smtp服务器,引用:

  1. Trying 127.0.0.1… 
  2. Connected to localhost. 
  3. Escape character is '^]'
  4. 220 server.domain.com.br ESMTP Postfix (2.1.0) 

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

  1. “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。 
  2. 引用: 
  3. DATA 
  4. 354 End data with <CR><LF>.<CR><LF> 
  5. teste 

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

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

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 使用PHP通过SMTP发送邮件新手指南
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡