phpmailer调用smtp发送邮件(亲测可用)

由于最近使用wordpress开发网站,有一个外贸询盘的功能用的是插件,但这个插件的验证码经常出问题。我就想把这个功能DIY一下,今天在看西部数码虚拟主机功能的时候,无意看到了php发邮件这个“phpmailer”,有个测试代码,我下载改了改,第一次失败,第二次就成功了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
include "class.phpmailer.php";    //包函邮件发送类

//邮件发送
function send_mail($frommail,$tomail,$subject,$body,$ccmail,$bccmail) {
 $mail = new PHPMailer();
 $mail->IsSMTP();                            // 经smtp发送
 $mail->Host     = "smtp.163.com";           // SMTP 服务器
 $mail->SMTPAuth = true;                     // 打开SMTP 认证
 $mail->Username = "xiebit@163.com";    // 用户名
 $mail->Password = "**********";          // 密码
 $mail->From     = $frommail;                  // 发信人
 $mail->FromName = "xiebit";        // 发信人别名
 $mail->AddAddress($tomail);                 // 收信人
 if(!empty($ccmail)){
 $mail->AddCC($ccmail);                    // cc收信人
 }
 if(!empty($bccmail)){
 $mail->AddCC($bccmail);                   // bcc收信人
 }
 $mail->WordWrap = 50;
 $mail->IsHTML(true);                            // 以html方式发送
 $mail->Subject  = $subject;                 // 邮件标题
 $mail->Body     = $body;                    // 邮件内空
 $mail->AltBody  =  "请使用HTML方式查看邮件。";
 return $mail->Send();
}

$result= send_mail("xiebit@163.com","xiebit@gmail.com","test","test");
?>

测试代码可以在这个链接下载:http://downinfo.myhostadmin.net/mail/phpmail_test.rar(解压后上传到网站根目录,修改里面的send.php邮箱信息测试发信)

因为要用到SMTP邮件服务,需要自己提前准备一个邮箱,QQ、网易、Gmail、outlook都行,示例是用的QQ邮箱,但是我把我的QQ邮箱地址、账号密码改到源码之后,提示是“Could not authenticate”。出现这个问题有可能是账号密码不对,也可能是邮箱没开启SMTP服务,还有可能是邮箱异常,很显然我刚开通的这个功能,以上三个问题都不可能存在。

最终,把邮箱密码改成开启SMTP服务时邮箱给的授权码,再测试就发送成功了。

为您推荐

发表回复