thinkphp 整合 phpmailer 实现邮件发送

发送邮件配置

// thinkphp config.php
// 配置邮件发送服务器
'MAIL_SMTP'     => TRUE,
'MAIL_HOST'     => 'smtp.yeah.net',
'MAIL_SMTPAUTH' => TRUE,
// 测试邮箱
'MAIL_USERNAME' => 'sshsfl@yeah.net',
'MAIL_PASSWORD' => 'your-login-password/client-authorization-password',
'MAIL_SECURE'   => 'tls',
'MAIL_CHARSET'  => 'utf-8',
'MAIL_ISHTML'   => TRUE,

邮件配置需要注意的地方

// MAIL_PASSWORD 的配置值需要注意
// 我使用的是网易的邮箱来进行测试的
// 所以下面填写的密码不一定就是你的登录邮箱的密码
// 客户端授权密码-增强邮箱的安全性
// 因为网易邮箱里面有所谓的**客户端授权密码**
// 可能是你当时设置的另一个密码
// 所以这边是一个坑,我也被坑了好久才发现
// 为什么一直提示 SMTP connected failed smtp_connect_failed

thinkphp C快捷函数是不区分大小写的

C('MAIL_PASSWORD')
// 都可以
C('mail_password')
// 使用的时候,最好前后一致
// 但是建议统一使用大写方式
// 可以利用config首字母来记忆C()方法

thinkphp vendor function.php

ThinkPHP Vendor 目录是专门用于存放非标准ThinkPHP的插件目录,
如下图:同时也需要注意这里的文件夹和文件的名的大小写,考虑到后面导入

这里写图片描述

另外,在这里,我在 thinkphp 架构里面写了一个
全局的函数:function.php,其位置如下图所示

这里写图片描述

注意这个 function.php 文件中的函数是可以在全局中使用的,
不需要先引入function.php文件,但是其位置和名称都是定的,
Common/Common/function.php
<?php

/**
 * 发送邮件函数
 *
 * @param  string $to      收件人邮箱
 * @param  string $subject
 * @param  string $content 邮件内容
 * @return bool
 */
function send_mail($to, $subject, $content)
{
    vendor('PHPMailer.class#phpmailer');
    vendor('PHPMailer.class#smtp');

    $mail = new PHPMailer();
    var_dump($mail); // test

    // todo

}

引入phpmailer smtp需要注意的地方

// vendor('PHPMailer.class#PHPMailer');
// Class 'PHPMailer' not found 注意这里面的大小写
vendor('PHPMailer.class#phpmailer');
vendor('PHPMailer.class#smtp');
// 如果没有这行代码的话,那么会提示 Class 'SMTP' not found
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值