方林

再多的天才也无法胜过对细节的关注
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP发送邮件

Posted on 2012-05-27 19:30  fl_dream  阅读(1031)  评论(0编辑  收藏  举报

一. PHP中发送邮件的两种方式
    1. mail函数
        mail()方式发送邮件需要以下条件:
        需要在php.ini配置

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

     需要类似于sendmail这样的组件支持

   2.socket方式
        socket连接-->smtp通讯-->获取通讯消息--->发送


mail函数的使用:
mail() 函数允许您从脚本中直接发送电子邮件。
如果邮件的投递被成功地接收,则返回 true,否则返回 false。
mail(to,subject,message,headers,parameters)
to 必需。规定邮件的接收者。
subject 必需。规定邮件的主题。该参数不能包含任何换行字符。
message 必需。规定要发送的消息。
headers 可选。规定额外的报头,比如 From, Cc 以及 Bcc。
parameters 可选。规定 sendmail 程序的额外参数。

socket方式发送原理:
使用fsockopen函数打开一个Internet连接

使用fsockopen函数打开一个Internet连接

这里由于要使用SMTP协议,所以端口号为25。在打开连接成功后,会返回一
 个socket句柄,使用它就可以象使用文件句柄一样的。可使用的操作有fputs(),
fgets(),feof(),fclose()
220 服务就绪(在socket连接成功时,会返回此信息)
221 正在处理
250 请求邮件动作正确,
354 开始发送数据,结束以 .
500 语法错误,命令不能识别
550 命令不能执行,邮箱无效
552 中断处理:用户超出文件空间

 

使用socket方式发送通常会使用现有的封装好的类,比如phpMailer