这里简要介绍一下在PHP语言中实现邮件发送的两种方法,分别是使用socket发送和使用mail()函数发送的方式。
1.使用socket发送原理:使用fsockopen函数打开一个Internet连接,函数的参数列表为fsockopen(stringhostname,intport,int[errno],string[errstr],int[timeout]),这里由于要使用SMTP协议,所以端口号是25.在打开连接成功后,会返回一个socket句柄,使用它就可以像使用文件句柄一样,可使用的操作有fputs(),fgets(),feof(),fclose()等。该函数的返回值有以下几种:
服务就绪(在socket连接成功时,会返回此信息)正在处理请求邮件动作正确开始发送数据语法错误,命令不能识别命令不能执行,邮箱无效中断处理:用户超出文件空间但是,需要注意的是使用socket发送要保证开启php的fsockopen()函数,你可能需要:
php.ini文件中查找allow_url_fopen=On确保该项值为Onphp.ini文件中查找;extension=php_openssl.dll如果前面有分号,去掉分号重启web服务器,apache或IIS这里有个开源的发送邮件类可供直接发送邮件,使用的是socket发送原理,亲测可用,供大家参考:sendmail.zip
2.使用mail()函数发送:mail()函数是PHP语言自带的一个邮件发送函数,但是并不代表使用它可以直接进行邮件发送,需配置php.ini邮件信息、需要类似sendmail这样的组件支持。
(1)下载sendmail软件(如果你是用xampp,那里面直接就带了),下载