ThinkPHP实现邮件发送功能

前言

最近没发文章也是忙着写一个系统,完工的时候想给加一个邮件通知功能,ThinkPHP本身没有支持发送邮件功能,我们可以自己封装一个就行了,下面给我的实现方法分享一下。

实现

首先ThinkPHP是支持Composer的,我们直接安装PHPMailer即可

composer require phpmailer/phpmailer

接着在应用公共文件添加发送邮件的函数,说一下web_config这个是读取的全局中间价的网站配置,我懒得改了,大家自行修改一下就行。

use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; /**
 * 系统邮件发送函数
 * @param string $to 接收邮件者邮箱
 * @param string $subject 邮件主题
 * @param string $body 邮件内容
 * @param bool $form_name 发件人昵称
 * @param string $attachment 附件列表
 * @return boolean
 */ function send_mail($to, $subject = '', $body = '', $form_name = false, $attachment = []) {
    $mail = new PHPMailer(true);
    $mail_config = Request::param('web_config'); //服务器配置 $mail->CharSet = "UTF-8";
    $mail->SMTPDebug = 0;
    $mail->isSMTP();
    $mail->Host = $mail_config['mail_stmp'];
    $mail->SMTPAuth = true; if ($mail_config['mail_ssl']) {
        $mail->SMTPSecure = 'ssl';
    } else {
        $mail->SMTPAutoTLS = false;
        $mail->SMTPSecure = false;
    }
    $mail->Username = $mail_config['mail_name'];
    $mail->Password = $mail_config['mail_pwd'];
    $mail->Port = $mail_config['mail_port'];
    $mail->setFrom($mail_config['mail_name'], $form_name ? $form_name : $mail_config['mail_form']);
    $mail->addAddress($to, 'Joe');
    $mail->addReplyTo($mail_config['mail_name'], $form_name ? $form_name : $mail_config['mail_form']);
    $mail->isHTML(true);
    $mail->Subject = $subject;
    $mail->Body = $body; if (is_array($attachment)) { foreach ($attachment as $file) {
            is_file($file) && $mail->AddAttachment($file);
        }
    } return $mail->Send() ? true : $mail->ErrorInfo;
}

使用

send_mail('602621430@qq.com', '标题', '内容', '众众帮');

参数为

收件人邮箱地址,邮件标题,邮件内容,发件人昵称(此处可不填写,但是要保证函数里面配置的有默认的发件人昵称)

最后

有问题可在下方评论,一起探讨。

本博客所有文章如无特别注明均为原创。作者:小乐复制或转载请以超链接形式注明转自 众众帮
原文地址《ThinkPHP实现邮件发送功能
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)