编 写:袁 亮 时 间:2015-07-28 说 明:php发送邮件的相关知识 一、什么时候需要用到? 1、系统监控,应用监控报警 2、相应的项目统计 3、用户注册、重置密码 4、发送推广内容(现在很少) 5、给用户的正式通知 二、php中发送邮件的方式 1、使用封装好的PHPMailer类发送【常用】 网上下载相应的类文件即可phpmailer 2、使用smtp类发送 与PHPMailer类似 3、PEAR::Net_SMTP组件 需要引用pear类库中的Net/SMTP.php和Mail/mime.php,服务器上没有的话,直接下载也可以 据说挺好用的,很强大,没用过,可以尝试下 4、内置函数mail php需要安装正在运行的邮件系统,了解即可,平时不用 5、popen管道形式发送 需要配置邮件服务器,了解即可,我也没用过 三、PHPMailer简单demo IsSMTP();//使用smtp协议 $mail->SMTPDebug = false; $mail->Host = "smtp.163.com"; //使用哪个smtp服务器,在对应的邮件设置里找SMTP服务器 $mail->SMTPAuth = true; //需要认证,必选,基本没有不认证的了 $mail->Username = "ci123_demo"; //邮箱账号,不需要@什么的,需要在邮箱里开启smtp服务,否则失败 $mail->Password = "nymqjctyjlykkfpt"; //开启smtp服务的时候系统自动设置的密码(163是这样) $mail->CharSet = "UTF-8";//编码设置 $mail->From = "ci123_demo@163.com";//发件人完整邮箱地址 $mail->FromName = "育儿网";//发件人备注名,可以随意填写,方便自己看即可 //发送给谁,可以发给多个人,多次执行AddAddress,前面是邮箱地址,后面是备注 $mail->AddAddress('yuanliang@corp-ci.com', "袁亮"); $mail->AddCC('629036398@qq.com','暗夜御林');//抄送,暗送是BCC $mail->Subject = '邮件标题'; $content = '邮件测试内容'.date('Y-m-d H:i:s'); //$mail->Body = $content;//纯文本内容,不能发送html $mail->MsgHTML($content);//以html的形式发送,一般用这个,方便排版 if(!$mail->Send()){ echo $mail->ErrorInfo; die(); } echo 'succ'; die(); 四、PHPMailer注意事项 1、php需要支持sockets,大部分情况下都开启了,phpinfo查看Sockets Support 2、最常见的错误是需要开启smtp服务,到对应的邮箱里开启 smtp服务器地址 邮箱账号 授权密码,非邮箱登陆密码 3、需要发送html内容的,需要使用MsgHTML 4、发送失败的情况下,第一反应是看报错信息,而不是瞎猜 五、邮件发送的注意事项 1、限制 每个邮件服务器,都有限制邮件数量,163的限制比较少 出现莫名其妙收不到的情况,可以尝试换一个账号发,换一个账号收等来测试是哪方面有问题 2、内容过滤 垃圾内容过滤是邮件服务器最核心的功能,如果对用户发的时候,需要注意内容是否会被过滤,可以先拿自己的账号测试 3、发送附件 AddAttachment('文件绝对路径','附件名称'); 六、邮件协议 1、POP3 1.1 POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件 1.2 POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上 比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 2、IMAP 2.1 交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一 2.2 IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上, 对邮件进行的操作,服务器上的邮件也会做相应的动作 2.3 IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读 3、SMTP 3.1 简单邮件传输协议;它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式 3.2 SMTP认证,就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,现在已经没有不需要认证的了,除非自己搭 3.3 发送邮件,必须是开的这个服务 附录: http://www.w3school.com.cn/php/php_ref_mail.asp http://blog.csdn.net/heiyeshuwu/article/details/458170 http://blog.csdn.net/rainday0310/article/details/6281936 http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html