1、在自己的邮箱设置中,开启SMTP服务,以163邮箱为例:
①、登录邮箱,在侧边栏找到“邮箱中心”后面的设置按钮
②、在设置中找到“POP3/SMTP/IMAP”,点击,在右边开启服务:
在开启时,会提供一个密码,将它记下来,后面有用。
2、打开php.ini,开启 extension=openssl
3、下载PHPMailer-5.2.24.zip
4、解压下载的 PHPMailer 压缩文件,将class.phpmailer.php和class.smtp.php文件拷贝到thinkPHP项目的extend目录中的phpmailer目录下(phpmailer是自己新建的),当然,您也可以自己放到其他目录,只是后面的命名空间记住不要写错了。
5、将class.phpmailer.php和class.smtp.php更名为phpmailer.php和smtp.php
6、在phpmailer.php上面加入下面代码:
namespace phpmailer; use phpmailer\smtp;7、在phpmailer.php中找到下面的代码:
class phpmailerException extends Exception改为:
class phpmailerException \extends Exception8、给smtp.php也加入命名空间
namespace phpmailer;9、发送邮件(这里以发送验证码为例)方法:
public function send_code_to_email($email,$code){ $toemail = $email; $mail = new PHPMailer(); $mail->isSMTP(); //开启smtp服务。php里面也要开启ssl $mail->Charset = 'utf8'; $mail->Host = 'smtp.163.com'; $mail->SMTPAuth = true; $mail->Username = 'xxxxx@163.com'; //你自己的邮箱 $mail->Password = 'SAQNHRTNRFBCMNPW'; //开启smtp时的密码,第一步里面得到的 $mail->SMTPSecure = 'ssl'; $mail->Port = 994; $mail->setFrom('xxxxx@163.com', '接口测试'); //设置显示发件人 $mail->addAddress($toemail,'test'); //设置显示收件人邮箱和姓名 $mail->addReplyTo('xxxxx@163.com','Reply'); $mail->Subject = '您有新的验证码!'; $mail->Body = "这是一个测试邮件,您的验证码是$code,验证码的有效期为1分钟,本邮件请勿回复!"; if(!$mail->send()){ $this->return_msg(400,$mail->ErrorInfo); }else{ $this->return_msg(200,'验证码已发送,请注意查收!'); } }至此,全部完成!下面是利用上面的方法发送成功的邮件截图:
当然,登录你刚才的163邮箱,进入已发送,也能看到发送的邮件。