thinkphp使用PHPMailer发送邮件

thinkphp使用PHPMailer发送邮件

第一步:准备PHPMailer

使用PHPMailer发送邮件,首先下载个PHPMailer

将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor

thinkphp使用PHPMailer发送邮件

第二步:配置配置文件

修改conf.php文件

thinkphp使用PHPMailer发送邮件

邮件配置:

//邮件配置

    ‘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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114270.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月21日 上午10:00
下一篇 2021年9月21日 上午10:00


相关推荐

  • navicat导入sql文件成功但没有表_mysql读取excel

    navicat导入sql文件成功但没有表_mysql读取excelExcel导入mysql数据丢失昨天晚上弄了一个晚上都没解决,来这里求助下,谢谢各位了for($j=3;$j<=$highestRow;$j++)//表头不读取{$a=$objPHPExcel->getActiveSheet()->getCell(“A”.$j)->getValue();$a=iconv(“UTF-8″,”GBK//IGNORE”,$a);//转码$b…

    2025年12月6日
    7
  • Python生成可执行文件exe

    Python生成可执行文件exePython生成可执行文件exe一、安装pyinstallerpipinstallpyinstaller二、使用pyinstaller命令使用示例相对路径在程序目录中,运行命令pyinstallermyscript.py则可以在当前目录生成两个文件夹dist和build,exe文件在dist文件夹中。绝对路径在程序目录中,运行命令pyinstallerC:\mys…

    2025年5月26日
    4
  • anaconda集成环境下,用pycharm运行代码不显示任何结果也不报错的一系列问题

    anaconda集成环境下,用pycharm运行代码不显示任何结果也不报错的一系列问题卸载 anaconda 和 pycharm 后 如果 C Users Username anaconda3 文件夹还在 就把它删了 然后打开注册表编辑器 运行 Regedit 计算机 HKEY CURRENT USER SOFTWARE Python 把这个文件夹删除 重启电脑 先安装 anaconda 再安装 pycharm Pycharm 打开要运行的项目 如果提示在程序目录找不到 import 的包 就在项目里重新添加包

    2026年3月27日
    1
  • vue项目中,定义并使用 全局变量,全局函数

    vue项目中,定义并使用 全局变量,全局函数一 定义变量 并全局使用原理 1 单独新建一个全局变量模块文件 模块中定义一些变量初始状态 用 exportdefaul 暴露出去 2 在 main js 中引入 并通过 Vue prototype 挂载到 vue 实例上面 供其他模块文件使用 3 或者直接引入到需要的模块文件中使用 项目目录步骤 1 新建 global variable

    2026年1月27日
    3
  • nessus怎么用_nessus如何换端口

    nessus怎么用_nessus如何换端口打开安装有nessus软件的虚拟机,输入账号密码输入ifconfig打开浏览器,输入虚拟机的IP地址,加端口号8843这个时候,等一会,加载完插件,就可以输入用户名密码

    2022年10月18日
    5
  • 何为文件句柄??_窗口句柄是什么意思

    何为文件句柄??_窗口句柄是什么意思一、百度百科解释:在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(filehandle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该…

    2022年10月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号