Thinkphp整合swiftmailer实现邮件发送

来源:互联网 发布:vscode 运行npm命令 编辑:程序博客网 时间:2024/05/16 17:24

最近在博客加入了注册系统,注册怎么能少了邮箱验证呢

扒了好多博客,都没几个完整好用的

但是还是扒到了有用的插件 — swiftmailer

首先下载 swiftmailer ,下载地址:https://github.com/swiftmailer/swiftmailer

下载解压后把lib文件夹重命名为 swiftmailer ,放入 ThinkPHP\Library\Vendor\文件夹下

再去控制器引用

$email_set = M(‘web_set’)->where(array(‘id’ => 1))->
field(‘web_name,web_email,email_smtp,email_port,email_pwd’)->find();
//从数据库获取邮箱配置,包括帐号,密码,服务器类型,端口

regtime=time();token = md5(name.pwd . regtime);token_exptime = regtime+243600;user = array('name' => name,email=>email, 'pwd' => md5(pwd),status=>0,token=>token, 'token_exptime' => tokenexptime);add = M('user')->add(user);if(add) {

/*———————————————–
这里是引用第三方类库

. 之前表示文件夹,之后表示要引用的文件

———————————————–*/

vendor(‘swiftmailer.swift_required’);

transport=\SwiftSmtpTransport::newInstance(email_set[‘email_smtp’], $email_set[‘email_port’]);
//这里因为路径问题要加上 \

transport>setUsername(email_set[‘web_email’]);

transport>setPassword(email_set[‘email_pwd’]);

mailer=\SwiftMailer::newInstance(transport);

$message = \Swift_Message::newInstance();

message>setFrom(array(email_set[‘web_email’] => $email_set[‘web_name’]));

message>setTo(array(email => $name));

message>setSubject(′′.email_set[‘web_name’] . ’ 激活’);

$str =’这里是邮件内容,本博客所用的邮件格式是贤心大神那里的验证邮件,但是发上来会被格式化,有需要的自己去扒吧’;

message->setBody(“{str}”, ‘text/html’, ‘utf-8’);

mailer>send(message);

if (mailer) {  
   echo ‘{“status”:”y”,”info”:”发送成功,请在24小时内激活,否则帐号失效”,”code”:”0”}’;  
} else {
dele = M('user')->where(array('name' => name,email=>email))->delete();
echo ‘{“status”:”n”,”info”:”注册失败,请重新注册”}’;

}

原创粉丝点击