利用PHPmailer发送邮件及问题解决
2018-04-10 本文已影响0人
Nomandia
利用PHPMailer发送邮件
## 相关引用后生成实例
$mailer = new EMailer();
## 开启安全认证,默认是false
$mailer->SMTPAuth = true;
## 此处举例的是阿里邮箱的smtp服务器地址
$mailer->Host = 'smtp.mxhichina.com';
## 启用smtp,默认是空
$mailer->IsSMTP();
## 启用安全通道,默认空。这里最好看看邮件服务的配置,阿里是ssl
$mailer->SMTPSecure = 'ssl';
## 邮件服务器端口,务必用telnet xxx port证明下端口是通的
$mailer->Port = 465;
## 邮件编码
$mailer->CharSet = 'UTF-8';
## 发件人名(用于显示)
$mailer->FromName = '上帝';
## 发件人账号,通常是你的邮箱地址
$mailer->Username = 'xxx@yyy.com';
## 发件人的邮箱密码
$mailer->Password = 'secret';
## 发件人邮件地址
$mailer->From = 'sdkjgy@xxx.com';
## 开启的话会支持HTML
$mailer->isHTML(true);
## 收件人地址,数组或字符串
$mailer->addAddress('nomandia@xxx.com');
## 邮件主题
$mailer->Subject = '邮件主题';
## 邮件内容
$mailer->Body = '<h1>Hello World</h1>';
## 发送,$status=true时表示发送成功
$status = $mailer->send();
通常这么设置后边可以正常发送邮件了,不过有时候会遇到问题,常见的错误有:
Could not instantiate mail function. :代码服务器不支持邮件功能,可以先检查PHP是否启用 openssl和sockets模块,windows就纠结了。另外要确保25、465等端口没有被占用。
SMTP Error: Could not connect to SMTP host:
连不上邮件服务器(Host值),可能的情况是:防火墙、地址填错了、端口错等。可考虑先用telnet host port连下看看。
SMTP server error: mail from address must be same as authorization user:认证失败就看看你的账号密码是否填错,有些邮箱(如:企鹅)是有二级密码的,此密码并非登录密码。