发送邮件: 1 php中发送邮件的方式: 2 mail函数的使用 3 socket方式发送原理 4 学会使用一个发送邮件的类 php发送邮件的方式: 1 通过mail()函数发送邮件: mail() 配置php.ini 邮件信息 需要类似sendmail这样的组件支持 2 通过socket通讯,使用SMTP传输: socket连接 -> SMTP通讯 ->获取通讯消息 -> 发送 mail()函数允许您从脚本中直接发送电子邮件 如果邮件的投递被成功的接受,则返回true,否则返回false mail(to,subjetc,message,headers,parameters) to:必须 规定邮件的接收者 subject 必须 规定邮件的主题 该参数不包含任何换行字符 headers 可选:规定额外的报头 比如:from cc以及bs parameters可选 规定sendmail程序的额外参数 使用fsockopen函数打开一个internet连接 fsockopen(string hostname,int port,int[errno],string[errstr],int[]) 这里由于要使用gSMTP协议,所以端口号25,在打开连接成功后,会返回一个socket句柄,使用它就可以使用文件句柄一样的,可使用的操作有fputs() fgets() feof() fclose() 220 服务器就绪(在socket连接成功时,会返回此信息) 221 正在处理 250 请求邮件动作正确 354 开始发送数据 命令不能识别 500 语法错误,命令不能识别 550 命令不能执行,邮箱无效 552 中断处理,用户超出文件空间 mail("mail@php100.com","邮件标题","邮件内容"); 此时也许会报错,因为这里没有连接smtp。打开php.ini文件 搜索smtp:SMTP = locahost smtp_port=25 sendmail_from=master@php100.com if(mail("main@php.com","邮件标题:","邮件内容")){ echo "支持mail" }else{ echo "不支持mail" } 使用socket发送邮件: 引入发送邮件类: $sttpserver = "smtp.163.com"; $smtpserverport = 25;//smtp服务器端口 $smtpusermail = "info@163.com";//发送给谁 $smtpuser = "info";//SMTP服务器的用户账号 $smtppass = $pw;//smtp服务器的用户密码 $mailsubject = "主题"; $mailbody = "内容"; $mailtype = "html"; $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里main的一个true是表示使用身份验证,否则不适用身份验证 $smtp->debug= true;//是否显示发送的调试信息 $smtp->sendmail() |
|