ThinkPHP中使用PHPMailer发送邮件
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' );
}