第一步:准备PHPMailer
使用PHPMailer发送邮件,首先下载个PHPMailer
将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor
第二步:配置配置文件
修改conf.php文件
邮件配置:
//邮件配置
'THINK_EMAIL' =>
array(
'SMTP_HOST' =>
'smtp.163.com', //SMTP服务器
'SMTP_PORT' => '465',
//SMTP服务器端口
'SMTP_USER' =>
'ihtxt@163.com', //SMTP服务器用户名
'SMTP_PASS' => 'ihtxt.com',
//SMTP服务器密码
'FROM_EMAIL' =>
'ihtxt@163.com', //发件人EMAIL
'FROM_NAME' => '爱红电子书',
//发件人名称
'REPLY_EMAIL' => 'ihtxt@163.com',
//回复EMAIL(留空则为发件人EMAIL)
'REPLY_NAME' => '爱红电子书',
//回复名称(留空则为发件人名称)
),
注:推荐使用163邮件,不要使用QQ邮箱,邮件配置一定要正确
第三步:将邮件发送函数放到common.php文件
可以将该函数放到ThinkPHPCommoncommon.php。也可以放到你生成的项目文件的Commoncommon.php。不过只能放到一个地方,否则就会报函数重定义错误。
function think_send_mail($to, $name, $subject
= '', $body = '', $attachment = null){
$config =
C('THINK_EMAIL');
vendor('PHPMailer.class#phpmailer');
//从PHPMailer目录导class.phpmailer.php类文件
$mail
= new PHPMailer();
//PHPMailer对象
$mail->CharSet
= 'UTF-8';
//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP();
// 设定使用SMTP服务
$mail->SMTPDebug
= 0;
// 关闭SMTP调试功能
// 1 =
errors and messages
// 2 =
messages only
$mail->SMTPAuth
= true;
// 启用 SMTP 验证功能
$mail->SMTPSecure =
'ssl';
// 使用安全协议
$mail->Host
=
$config['SMTP_HOST']; // SMTP 服务器
$mail->Port
=
$config['SMTP_PORT']; // SMTP服务器的端口号
$mail->Username
= $config['SMTP_USER']; //
SMTP服务器用户名
$mail->Password
= $config['SMTP_PASS']; //
SMTP服务器密码
$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
$replyEmail
=
$config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
$replyName
=
$config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
$mail->AddReplyTo($replyEmail, $replyName);
$mail->Subject
= $subject;
$mail->AltBody
= "为了查看该邮件,请切换到支持 HTML
的邮件客户端";
$mail->MsgHTML($body);
$mail->AddAddress($to,
$name);
if(is_array($attachment)){
// 添加附件
foreach ($attachment as $file){
is_file($file) && $mail->AddAttachment($file);
}
}
return
$mail->Send() ? true :
$mail->ErrorInfo;
}
第四步:使用该函数发送邮件
$r =
think_send_mail('要发送的邮箱','发送人名称,即你的名称','文件标题','邮件内容');
注:如果使用phpmailer发送邮件报错
windows下在php.ini中去掉下面的分号
extension=php_openssl.dll
并将allow_url_fopen = Off改为
allow_url_fopen = On