tp5 + 发送邮箱
前期工作
开启QQ邮箱的 SMTP服务
php环境问题 要确保PHP环境中的openssl是为开启在状态 如果未开启的话,要先去开启
安装PHPMailer
有两种方式去安装
- 下载文件解压把项目指定目录,下载地址:https://github.com/PHPMailer/PHPMailer
- 使用composer安装,一步到位
我使用的是composer安装,为什么要用composer呢,因为会自动帮你把文件下载到依赖文件夹下来。 我们先用命令行进入下面根目录,然后执行以下命名
composer require phpmailer/phpmailer
安装成功之后我们打开根目录下来的vendor文件会发现多了个phpmailer,如果是用第一种安装的话就把下载下来的文件移动都该目录即可
安装完之后我们就进行开发
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
我个人建议把发送邮箱在common.php文件下来编写,为什么呢?因为common是公共函数代码文件
function send_email($param){
$mail = new PHPMailer(true);
try {
$mail->CharSet ="UTF-8";
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'smtp.qq.com';
$mail->SMTPAuth = true;
$mail->Username = '123456@qq.com';
$mail->Password = '8888888';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('123456@qq.com','Mailer');
$mail->addAddress('456789@qq.com','奢侈手表通知');
$mail->addReplyTo('123456@qq.com', 'Reply');
$mail->addAttachment('www/xxxx.cn/public/static/images/123.png','18.png');
$mail->addAttachment('www/xxxx.cn/public/static/images/456.png');
$mail->isHTML(true);
$mail->Subject = '邮箱通知' . time();
$mail->Body = "<div style=\"width: 500px;margin: auto\">
<div>
<div style=\"font-size: 18px; text-align: center; \">通知</div>
</div>
<div style=\"margin: auto; width: 400px\">
<p>你好:</p>
<p>收到咨询留言,内容如下:</p>
<p>昵称:{$param['name']}</p>
<p>手机号:{$param['phone']}</p>
<p>内容:{$param['msg']}</p>
<p>留言时间:{$param['create_time']}</p>
<p>请尽快进行联系处理。</p>
</div>
</div>";
$mail->AltBody = '这个参数表示客户端如果不支持HTML内容的话($mail->Body就是html内容),则显示此内容';
$mail->send();
return 'success';
} catch (Exception $e) {
return '失败原因: '.$mail->ErrorInfo;
}
}
|