1、首先让邮箱开启smtp服务,本案例使用163的SMTP服务器: smtp.163.com发送邮件
2、下载phpmailer,在tp项目里的extends文件夹下新建一个文件夹phpmailer,把class.phpmailer.php和class.smtp.php放到里面,修改文件名为phpmailer.php和
SMTP.php\\注意这里是大写的SMTP(因为在phpmailer.php中实例化SMTP类是大写的,tp5中实例化类名要与文件名要一致),不然会报错的,然后在两个文件内头部加入命名空间namespace phpmailer;
3、
在phpmailer.php中的2315行使用到了php的Exception异常类,在thinkphp框架中直接继承,thinkphp找不到Exception所以要在
Exception前加上反斜杠 \;
4、在公共文件common.php中加入下面代码
/* * 发送邮件 * @param $to string 要发送的邮箱地址 * @param $title string 邮件标题 * @param $content string 邮件内容 * @return bool * */ function sendMail($to, $title, $content) { $mail = new \phpmailer\phpmailer(); //实例化 $mail->IsSMTP(); // 启用SMTP $mail->Host=config('MAIL_HOST'); //smtp服务器的名称(这里以163邮箱为例) $mail->SMTPAuth = config('MAIL_SMTPAUTH'); //启用smtp认证 $mail->Username = config('MAIL_USERNAME'); //发件人邮箱名 $mail->Password = config('MAIL_PASSWORD') ; //163邮箱发件人授权密码 $mail->From = config('MAIL_FROM'); //发件人地址(也就是你的邮箱地址) $mail->FromName = config('MAIL_FROMNAME'); //发件人姓名 $mail->AddAddress($to,"尊敬的客户"); $mail->WordWrap = 50; //设置每行字符长度 $mail->IsHTML(config('MAIL_ISHTML')); // 是否HTML格式邮件 $mail->CharSet=config('MAIL_CHARSET'); //设置邮件编码 $mail->Subject =$title; //邮件主题 $mail->Body = $content; //邮件内容 $mail->AltBody = "邮件验证,请用网页打开"; //邮件正文不支持HTML的备用显示 return($mail->Send()); }
//邮箱验证配置 'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称 'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证 'MAIL_USERNAME' =>'177****123@163.com',//发件人的邮箱名 'MAIL_PASSWORD' =>'*******',//163邮箱发件人授权密码 'MAIL_FROM' =>'177****123@163.com',//发件人邮箱地址 'MAIL_FROMNAME'=>'美丽说商城',//发件人姓名 'MAIL_CHARSET' =>'utf-8',//设置邮件编码 'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件
6、在需要使用的地方调用函数即可
sendMail('38****03@qq.com','邮件标题','邮件内容');