ThinkPHP中使用PHPMailer发送邮件
发布时间:2024-03-07
1、设置我们的邮箱客户端授权码
2、下载第三方类库 PHPMailer
Github下载地址: https://github.com/PHPMailer/PHPMailer ThinkPHP中使用Composer安装命令: composer require phpmailer/phpmailer 安装在 vendor/phpmailer/ 目录下
3、创建代码片段并配置相关的参数
1、找到我们项目公共配置文件的common.php文件,创建一个公用的函数。代码如下:
/** * 邮件发送 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 开始的时候,记得引用类 * * * use PHPMailerPHPMailerPHPMailer; * * * 应用公共函数文件,函数不能定义为public类型 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ function sendEmail( $desc_content $toemail $desc_url) { // 实力化类 $mail = new PHPMailer(); // 使用SMTP服务 $mail->isSMTP(); // 编码格式为utf8,不设置编码的话,中文会出现乱码 $mail->CharSet = "utf8"; // 发送方的SMTP服务器地址 $mail->Host = "smtp.163.com"; // 是否使用身份验证 $mail->SMTPAuth = true; // 发送方的163邮箱用户名,就是你申请163的SMTP服务使用的163邮箱 $mail->Username = "********@163.com"; // 发送方的邮箱密码,注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码 $mail->Password = "******"; // 使用ssl协议方式 $mail->SMTPSecure = "ssl"; // 163邮箱的ssl协议方式端口号是465/994 $mail->Port = 994; // 设置发件人信息,如邮件格式说明中的发件人,这里会显示为Mailer(xxxx@163.com),Mailer是当做名字显示 $mail->setFrom("*******@163.com" "Mailer"); // 设置收件人信息,如邮件格式说明中的收件人,这里会显示为Liang(yyyy@163.com) $mail->addAddress($toemail ''); // 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址 $mail->addReplyTo("itlaowen@163.com" "Reply"); // 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件) //$mail->addCC("xxx@163.com"); // 设置秘密抄送人(这个人也能收到邮件) //$mail->addBCC("xxx@163.com"); // 添加附件 //$mail->addAttachment("bug0.jpg"); // 邮件标题 $mail->Subject = "邮件标题!"; // 邮件正文 $mail->Body = "测试内容:" . $desc_content . "点击可以查看文章地址:" . $desc_url; // 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用 //$mail->AltBody = "This is the plain text纯文本"; if (!$mail->send()) { // 发送邮件 return $mail->ErrorInfo; // echo "Message could not be sent."; // echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息 } else { return 1; } }
2、创建好后,我们便可以直接调用该函数。
public function send() { echo sendEmail( '测试' '111111@163.com' 'http://www.baidu.com' ); }
标签: ThinkPHP发邮件 , PHP发邮件 , PHPMailer发送邮件 ,