ThinkPHP下SMTP的发送邮件
发送邮件的两个方法,博主已经亲自测试成功
1.TP官网方法
(http://www.thinkphp.cn/extend/248.html)
a).引入函数库:Email.class.php放在component文件夹下
b).配置文件:common/Conf/config.php中加入如下:
"SMTP_SERVER" =>"smtp.163.com", //邮件服务器
"SMTP_PORT" =>"25", //邮件服务器端口
"SMTP_USER_EMAIL" =>"@163.com", //SMTP服务器的用户邮箱(一般发件人也得用这个邮箱)
"SMTP_USER"=>"@163.com", //SMTP服务器账户名
"SMTP_PWD"=>"授权密码", //SMTP服务器账户密码
"SMTP_MAIL_TYPE"=>"HTML", //发送邮件类型:HTML,TXT(注意都是大写)
"SMTP_TIME_OUT"=>30, //超时时间
"SMTP_AUTH"=>true,
c).实际调用:controller.php,直接可以在控制器中应用,如下
$mail = new ComponentEmail();
$data["mailto"] = "123456@qq,.com"; //收件人
$data["subject"] = "欢迎注册网站"; //邮件标题
$data["body"] = "邮件正文内容"; //邮件正文内容
if($mail->send($data))
{
//邮件发送成功...
}
else
{
//邮件发送失败...
}
2.类库
a).引入函数库,PHPMailer移动到thinkphp里的libraryVendor
b).配置文件,common/Conf/config.php中加入如下:
// // 配置邮件发送服务器
"MAIL_HOST" =>"smtp.163.com",//smtp服务器的名称smtp.exmail.qq.com
"MAIL_SMTPAUTH" =>TRUE, //启用smtp认证renxiaole66@126.com
"MAIL_USERNAME" =>"@163.com",//你的邮箱名
"MAIL_FROM" =>"@163.com",//发件人地址
"MAIL_FROMNAME"=>"MR.峰",//发件人姓名
"MAIL_PASSWORD" =>"授权密码",//邮箱授权密码
"MAIL_CHARSET" =>"utf-8",//设置邮件编码
"MAIL_ISHTML" =>TRUE, // 是否HTML格式邮件
c).引入函数,common/common/function.php,创建此php文件,后边用时框架会自动加载
function SendMail($to, $title, $content) {
Vendor("PHPMailer.PHPMailerAutoload");
$mail = new PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host=C("MAIL_HOST"); //smtp服务器的名称(这里以QQ邮箱为例)
$mail->SMTPAuth = C("MAIL_SMTPAUTH"); //启用smtp认证
$mail->Username = C("MAIL_USERNAME"); //你的邮箱名
$mail->Password = C("MAIL_PASSWORD") ; //邮箱密码
$mail->From = C("MAIL_FROM"); //发件人地址(也就是你的邮箱地址)
$mail->FromName = C("MAIL_FROMNAME"); //发件人姓名
$mail->AddAddress($to,"尊敬的客户");
$mail->WordWrap = 50; //设置每行字符长度
$mail->IsHTML(C("MAIL_ISHTML")); // 是否HTML格式邮件
$mail->CharSet=C("MAIL_CHARSET"); //设置邮件编码
$mail->Subject =$title; //邮件主题
$mail->Body = $content; //邮件内容
$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
return($mail->Send());
}
d).实际调用:controller.php,直接可以在控制器中应用,如下
if(SendMail("$_POST[user_email]","欢迎注册网站","$message")){
$this->success("发送成功,请激活后登录",U("login"));
}else{
$this->error("发送失败");
}
}else{//add()失败
// echo "error";
$this->error("注册失败",U("register"));
}
注意:
1.在配置邮箱的帐号密码时,密码为SMTP的【授权密码】,与你的登录密码是不一样的,
否则提示: 535 authentication failed
2.必须开启SMTP服务,以163邮箱为例子:
这样的话,用户注册激活,用户找回密码等等,不都能实现了吗?o(∩_∩)o
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。