首页 > 编程笔记 > 通用技能 阅读:4

PHPMailer下载和使用教程(附源码包,非常详细)

PHPMailer 是一款专为 PHP 语言编写的电子邮件发送库,它封装了 SMTP、Sendmail、qmail 等多种传输方式,让开发者不必关心底层协议细节,就能在 Web 应用里快速实现“注册确认、密码重置、订单通知、营销群发”等邮件场景。

与 PHP 内置的 mail() 函数相比,PHPMailer 提供了 SMTP 认证、TLS/SSL 加密、HTML 格式、附件、抄送/密送、嵌入式图片、多编码支持等丰富功能,被 WordPress、Drupal、Yii、Joomla 等主流开源项目选为默认邮件引擎,目前 Packagist 累计下载量已接近四千万次。

PHPMailer 完全开源免费,代码托管在 GitHub,经社区多年迭代,6.x 版本已全面兼容 PHP 5.5 至 PHP 8.3,并持续维护安全更新。

由于 PHPMailer 只依赖 PHP 扩展“mbstring”与“openssl”,所以能跑在 Windows、Linux、macOS 任何 Web 服务器上,无需额外二进制组件。

下载PHPMailer

下载 PHPMailer 的方式有以下两种:
1、直接从 GitHub 上下载,下载地址为:

网盘下载:https://pan.quark.cn/s/a9d7541629d0

网盘里提供了最新版的 PHPMailer。

2、使用 composer 下载 Composer,下载地址为:

网盘下载:https://pan.quark.cn/s/6cadb078a019

下载会获得一个名为 "Composer-Setup.exe" 的安装程序,双击它开始安装:
① 直接点击 Next:


② 点击 browse 打开 php 文件夹下的 php.exe,然后点击 Next:


③ 后续一直按 Next,直到出现下图的界面,表示安装完成:


④ 按组合键 win + R 输入 cmd 出现命令提示框,输入 composer 回车,看到下图的输出信息证明安装成功:


 
3) 利用 Composer 安装 PHPMailer,按组合键 win + R 输入 cmd 出现命令提示框,输入下面指令:

composer require phpmailer/phpmailer

即可成功下载安装 PHPMailer。

使用PHPMailer

使用 PHPMailer 发送邮件之前,需要拥有自己的邮件服务器,测试的时候其实用自己申请的免费邮箱最方便了,不需要自己再搭建服务器了,可能要配置邮箱的 SMTP 服务,大部分公共邮箱(163、qq 等)为了安全默认是关闭的。

网易邮箱配置如下:

服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号
IMAP imap.163.com 993 143
SMTP smtp.163.com 465/994 25
POP3 pop.163.com 995 110

QQ 邮箱相关配置如下:

邮箱 POP3服务器(端口995) SMTP服务器(端口465或587)
qq.com pop.qq.com smtp.qq.com

下面给出 php 代码示例:
<?php
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;

    require './src/Exception.php';
    require './src/PHPMailer.php';
    require './src/SMTP.php';

    $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
    try {
        //服务器配置
        $mail->CharSet ="UTF-8";                     //设定邮件编码
        $mail->SMTPDebug = 0;                        // 调试模式输出
        $mail->isSMTP();                             // 使用SMTP
        $mail->Host = 'smtp.163.com';                // SMTP服务器
        $mail->SMTPAuth = true;                      // 允许 SMTP 认证
        $mail->Username = '邮箱用户名';                // SMTP 用户名  即邮箱的用户名
        $mail->Password = '密码或者授权码';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
        $mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议
        $mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持

        $mail->setFrom('xxxx@163.com', 'Mailer');  //发件人
        $mail->addAddress('aaaa@126.com', 'Joe');  // 收件人
        //$mail->addAddress('ellen@example.com');  // 可添加多个收件人
        $mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
        //$mail->addCC('cc@example.com');                    //抄送
        //$mail->addBCC('bcc@example.com');                    //密送

        //发送附件
        // $mail->addAttachment('../xy.zip');         // 添加附件
        // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名

        //Content
        $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
        $mail->Subject = '这里是邮件标题' . time();
        $mail->Body    = '<h1>这里是邮件内容</h1>' . date('Y-m-d H:i:s');
        $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';

        $mail->send();
        echo '邮件发送成功';
    } catch (Exception $e) {
        echo '邮件发送失败: ', $mail->ErrorInfo;
}
发送完带附件的邮件界面如下:

相关文章