function send(){ ini_set("magic_quotes_runtime",0); require './PHPMailer/PHPMailer.php'; require './PHPMailer/SMTP.php'; try { $mail = new PHPMailer(true); $mail->IsSMTP(); $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码 $mail->SMTPAuth = true; //开启认证 $mail->Port = 25; //端口25 $mail->Host = "smtp.163.com"; //设置smtp服务器 $mail->Username = "15703415669"; //发信人的邮箱用户名 *************************************** $mail->Password = "shouquanma"; //授权码 *************************************** //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示 $mail->AddReplyTo("15703415669@163.com","zaszybko");//回复地址 *************************************** $mail->From = "15703415669@163.com"; //完整的发件人邮箱 *************************************** $mail->FromName = "zaszybko"; //发件人署名 *************************************** $to = "867369324@qq.com"; //接受人邮箱 *************************************** $mail->AddAddress($to); $mail->Subject = "phpmailer测试标题"; $mail->Body = "<h1>phpmail演示</h1>这是php点点通(<font color=red>www.cnblogs.com</font>)对phpmailer的测试内容"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略 $mail->WordWrap = 80; // 设置每行字符串的长度 //$mail->AddAttachment("f:/test.png"); //可以添加附件 $mail->IsHTML(true); $mail->Send(); echo '邮件已发送'; } catch (phpmailerException $e) { echo "邮件发送失败:".$e->errorMessage(); } }
//邮件发送测试方法 function sendMail($subject,$msghtml,$sendAddress){ //引入发送类phpmailer.php require './PHPMailer/class.phpmailer.php'; //实列化对象 $mail = new PHPMailer(); /*服务器相关信息*/ $mail->IsSMTP(); //设置使用SMTP服务器发送 $mail->SMTPAuth = true; //开启SMTP认证 $mail->Host = 'smtp.163.com'; //设置 SMTP 服务器,自己注册邮箱服务器地址 $mail->Username = 'woai281'; //发信人的邮箱用户名 $mail->Password = 'itcastphp2016'; //新注册邮箱,客户端授权码 /*内容信息*/ $mail->IsHTML(true); //指定邮件内容格式为:html $mail->CharSet ="UTF-8"; //编码 $mail->From = 'woai281@163.com'; //发件人完整的邮箱名称 $mail->FromName ="php52技术小组"; //发信人署名 $mail->Subject = $subject; //信的标题 $mail->MsgHTML($msghtml); //发信主体内容 // $mail->AddAttachment("fish.jpg"); //附件 /*发送邮件*/ $mail->AddAddress($sendAddress); //收件人地址 //使用send函数进行发送 if($mail->Send()) { //发送成功返回真 return true; // echo '您的邮件已经发送成功!!!'; } else { return $mail->ErrorInfo;//如果发送失败,则返回错误提示 } }
PHPMaile发送邮件类 https://github.com/PHPMailer/PHPMailer
出现 SMTP Error: Could not authenticate 错误时首先检查各个参数有没有写对
授权码获取
用到密码验证的时候存一个随机值到数据库,用户点击邮件的时候用于验证。