PHP中利用PHPMailer配合QQ邮箱实现发邮件

phpmailer 实现给网站用户发送邮件,WordPress 好像禁用了 mail()函数,也不能直接使用自带的发送邮件,以防止暴露 IP

PHPMailer 的介绍:

  • 可运行在任何平台之上
  • 支持 SMTP 验证
  • 发送邮时指定多个收件人,抄送地址,暗送地址和回复地址;注:添加抄送、暗送仅 win 平台下 smtp 方式支持
  • 支持多种邮件编码包括:8bit,base64,binary 和 quoted-printable
  • 支持冗余 SMTP 服务器,即可以指定主 smtp 服务器地址也只可以指定备份 smtp 服务器
  • 支持带附件的邮件,可以为邮件添加任意格式的附件—当然得你的服务器有足够大的带宽支撑
  • 自定义邮件头信息,这跟 php 中通过 header 函数发送头信息类似
  • 支持将邮件正文制作成 HTMl 内容,那么就可以在邮件正文中插入图片,灵活的 debug 支持
  • 经测试兼容的 SMTP 服务器包括:Sendmail,qmail,Postfix,Imail,Exchange 等


邮件协议简介

邮件协议-SMTP 协议

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。SMTP 是建立在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供与来信有关的通知。(来自百度百科)

邮件协议-POP3 协议

POP3(Post Office Protocol 3)即邮局协议的第 3 个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3 协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而 POP3 服务器则是遵循 POP3 协议的接收邮件服务器,用来接收电子邮件的。(来自百度百科)

常用的邮件服务器地址

QQ 邮箱

POP3 服务器:pop.qq.com

SMTP 服务器:smtp.qq.com

SMTP 服务器需要身份验证

163 邮箱

POP3 服务器:pop.163.com

SMTP 服务器:smtp.163.com

Sohu 邮箱

POP3 服务器:pop3.sohu.com

SMTP 服务器:smtp.sohu.com

PHPMailer 配合 QQ 邮箱实现发邮件

<?php 
// 必要导入
require("phpmailer/class.phpmailer.php");
require("phpmailer/class.smtp.php");
date_default_timezone_set('Asia/Shanghai');//设定时区东八区

$mail = new PHPMailer(); //建立邮件发送类
$address = "xxxx@qq.com";//收件人地址(必须真实)
$mail->IsSMTP(); // 使用 SMTP 方式发送
$mail->CharSet ="UTF-8";//设置编码,否则发送中文乱码
$mail->Host = "smtp.qq.com"; // 您的企业邮局域名                           
$mail->SMTPAuth = true; // 启用 SMTP 验证功能
$mail->Username = "xxx@qq.com"; // 发件人邮箱(必须真实)
$mail->Password = "*****"; // 发件人密码(必须真实)
$mail->From = "xxxx@qq.com"; //邮件发送者 email 地址(必须真实)
$mail->FromName = "沈唁志";// 发件人姓名
$mail->AddAddress($address, "023xs");//收件人地址 收件人,可以替换成任何想要接收邮件的 email 信箱,格式是 AddAddress("收件人 email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/test.jpg"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用 HTML 格式
$mail->Subject = "test"; //邮件标题
$mail->Body = "hello"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略

if(!$mail->Send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo "Message sent!恭喜,邮件发送成功!";
}

?>

3 条评论

发表评论

*