使用phpmailer发送邮件(以QQ邮箱为例)
<?php
include("class/class.phpmailer.php");
//下载phpmailer并include两个文件
include("class/class.smtp.php");
$mail = new PHPMailer();
//得到一个PHPMailer实例
$mail->CharSet = "utf-8";
//设置采用utf-8中文编码(内容不会乱码)
$mail->IsSMTP();
//设置采用SMTP方式发送邮件
$mail->Host = "smtp.qq.com";
//设置邮件服务器的地址(若为163邮箱,则是smtp.163.com)
$mail->Port =
25;
//设置邮件服务器的端口,默认为25
$mail->From =
"发件人";
//设置发件人的邮箱地址
$mail->FromName =
"收件人姓名";
//设置发件人的姓名(可随意)
$mail->SMTPAuth =
true;
//设置SMTP是否需要密码验证,true表示需要
$mail->Username="发件人";
(后面有解释说明为何设置为发件人)
$mail->Password = "发件人邮箱密码";
$mail->Subject
= "你好啊"; //主题
$mail->AltBody =
"text/html";
// optional, comment out and test
$mail->Body =
"你的邮件的内容"; //内容
$mail->IsHTML(true);
//$mail->WordWrap =
50;
//设置每行的字符数
$mail->AddReplyTo("回复地址","from");
//设置回复的收件人的地址(from可随意)
$mail->AddAddress("收件人","to");
//设置收件的地址(to可随意)
echo $mail->Send();
?>
若出现不能连接或者无法通过验证,则
1、在class.phpmailer.php中
363-365行,将smtp小写改成大写
public function IsSMTP() {
$this->Mailer =
‘SMTP‘;
}
2、572-579行,将case "smtp"小写改成大写
switch($this->Mailer)
{
case
‘sendmail‘:
return
$this->SendmailSend($header,
$body);
case
‘SMTP‘:
return
$this->SmtpSend($header,
$body);
default:
return
$this->MailSend($header, $body);
}
3、出现错误无法通过验证时,是因为在811-817中
$connection =
true;
if
($this->SMTPAuth)
{
if
(!$this->smtp->Authenticate($this->Username, $this->Password))
{
throw new
phpmailerException($this->Lang(‘authenticate‘));
}
}
}
验证时调用的是Username和Password,所以设置时将Username与发件人的from设置相同,同时设置为发件人邮箱即可解决通过。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。