《php+mysql模拟队列发送邮件》课程,主要解决PHP开发过程中,常见的发送多封邮件时页面卡死的问题,如果需要给网站所有用户发送一封系统通知邮件,假设网站有10000个注册用户,发送每封邮件需要0.1秒,直接发送? NO,当然要用队列,为什么?学完你就知道啦!
该老师讲课风格:
教师讲课深入浅出,条理清楚,层层剖析,环环相扣,论证严密,结构严谨,用思维的逻辑力量吸引学生的注意力,用理智控制课堂教学进程。学生通过听教师的讲授,不仅学到知识,也受到思维的训练,还受到教师严谨的治学态度的熏陶和感染
本视频中较为难点是phpmailer发送邮件了:
PHPMailer是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及图片附件,前提要设置好邮件服务器就能实现邮件发送功能。
HTML
首先我们先放置一个收件箱的输入框和一个发送邮件按钮:收件人:
jQuery$(function() {
$("#send").click(function() {
var email = $("#email").val();
$("#send").addClass("loading").val("loading...").attr("disabled", "disabled");
$.post("ajax.php", {
"email": email
},
function(data) {
if (data == 1) {
$("#result").html("发送成功,请注意查收您的邮件!");
} else {
$("#result").html(data);
}
$("#send").removeAttr("disabled").removeClass("loading").val("发送");
});
});
});
Ajax.phprequire_once('class.phpmailer.php');
$address = $_POST['email']; //收件人email
$mail = new PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "smtp.163.com"; //SMTP服务器 以163邮箱为例子
$mail->Port = 25; //邮件发送端口
$mail->SMTPAuth = true; //启用SMTP认证
$mail->CharSet = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式
$email_system = "qiumusua@163.com";
$mail->Username = $email_system; //你的邮箱
$mail->Password = ""; //你的密码
$mail->Subject = "你好"; //邮件标题
$mail->From = $email_system; //发件人地址(也就是你的邮箱)
$mail->FromName = "素材火"; //发件人姓名
$mail->AddAddress($address, "亲"); //添加收件人(地址,昵称)
$mail->AddAttachment('send.xls', '我的附件.xls'); // 添加附件,并指定名称
$mail->IsHTML(true); //支持html格式内容
$mail->AddEmbeddedImage("logo.jpg", "my-attach", "logo.jpg"); //设置邮件中的图片
$mail->Body = '你好, 朋友!
这是一封来自erdangjiade.com的邮件!
'; //邮件主体内容
//发送
if (!$mail->Send()) {
echo "发送失败: " . $mail->ErrorInfo;
} else {
echo "1";
}