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 = "[email protected]";//收件人地址(必须真实)
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->CharSet ="UTF-8";//设置编码,否则发送中文乱码
$mail->Host = "smtp.qq.com"; // 您的企业邮局域名                           
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "[email protected]"; // 发件人邮箱(必须真实)
$mail->Password = "*****"; // 发件人密码(必须真实)
$mail->From = "[email protected]"; //邮件发送者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 条评论

发表评论

*