thinkphp 整合 phpmailer 实现邮件发送

发送邮件配置

// thinkphp config.php
// 配置邮件发送服务器
'MAIL_SMTP'     => TRUE,
'MAIL_HOST'     => 'smtp.yeah.net',
'MAIL_SMTPAUTH' => TRUE,
// 测试邮箱
'MAIL_USERNAME' => '[email protected]',
'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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章