PHP配置
使用 phpinfo() 函数查看 socket 和 openssl 扩展信息(我使用phpstudy,只需要在控制面板里php扩展打开配置项)。
LINUX下的开启方法略有不同,以后补充。
下载PHPMailer
github上PHPMailer下载地址
在’项目地址\ThinkPHP\Library\Org\’地址下新建PHPMailer文件夹
解压文件,将src文件中的PHPMailer.php和SMTP.php拷贝到新建目录中
将PHPMailer.php修改为PHPMailer.class.php
将SMTP.php修改为SMTP.class.php
修改PHPMailer.class.php代码
PHP代码
//将
namespace PHPMailer\PHPMailer;
//修改为
namespace Org\PHPMailer;
修改SMTP.class.php代码
PHP代码
//将
namespace PHPMailer\PHPMailer;
//修改为
namespace Org\PHPMailer;
function.php
在’项目地址\Application\Common\Common\function.php’新增以下代码
/**
* 发送邮件
* @param string $address 需要发送的邮箱地址 发送给多个地址需要写成数组形式
* @param string $subject 标题
* @param string $content 内容
* @return boolean 是否成功
*/
function send_email($address,$subject,$content)
{
$email_smtp=C('EMAIL_SMTP');
$email_username=C('EMAIL_USERNAME');
$email_password=C('EMAIL_PASSWORD');
$email_from_name=C('EMAIL_FROM_NAME');
$email_smtp_secure=C('EMAIL_SMTP_SECURE');
$email_port=C('EMAIL_PORT');
if(empty($email_smtp) || empty($email_username) || empty($email_password) || empty($email_from_name)){
return array("error"=>1,"message"=>'邮箱配置不完整');
}
$phpmailer = new \Org\PHPMailer\PHPMailer();
// 设置PHPMailer使用SMTP服务器发送Email
$phpmailer->IsSMTP();
// 设置设置smtp_secure
$phpmailer->SMTPSecure=$email_smtp_secure;
// 设置port
$phpmailer->Port=$email_port;
// 设置为html格式
$phpmailer->IsHTML(true);
// 设置邮件的字符编码'
$phpmailer->CharSet='UTF-8';
// 设置SMTP服务器。
$phpmailer->Host=$email_smtp;
// 设置为"需要验证"
$phpmailer->SMTPAuth=true;
// 设置用户名
$phpmailer->Username=$email_username;
// 设置密码
$phpmailer->Password=$email_password;
// 设置邮件头的From字段。
$phpmailer->From=$email_username;
// 设置发件人名字
$phpmailer->FromName=$email_from_name;
// 添加收件人地址,可以多次使用来添加多个收件人
if(is_array($address)){
foreach($address as $addressv){
$phpmailer->AddAddress($addressv);
}
}else{
$phpmailer->AddAddress($address);
}
// 设置邮件标题
$phpmailer->Subject=$subject;
// 设置邮件正文
$phpmailer->Body=$content;
// 发送邮件。
if(!$phpmailer->Send()) {
$phpmailererror=$phpmailer->ErrorInfo;
return array("error"=>1,"message"=>$phpmailererror);
}else{
return array("error"=>0);
}
}
配置
在’项目/Application/Common/Conf/config.php’添加配置
/*
* PHPMailer配置型
* */
'EMAIL_FROM_NAME' => '', // 发件人(随便写)
'EMAIL_SMTP' => '', // smtp例如smtp.163.com或者smtp.qq.com
'EMAIL_USERNAME' => '', // 账号例如aaa.163.com或者11111.qq.com
'EMAIL_PASSWORD' => '', // 密码 注意: 163和QQ邮箱是授权码;不是登录的密码
'EMAIL_SMTP_SECURE' => '', // 链接方式 如果使用QQ邮箱;需要把此项改为 ssl
'EMAIL_PORT' => '25', // 端口 如果使用QQ邮箱;需要把此项改为 465(阿里云默认封掉25端口)建议使用465配合上面ssl