博客
关于我
thinkphp-实现邮件发送
阅读量:607 次
发布时间:2019-03-11

本文共 1698 字,大约阅读时间需要 5 分钟。

###ThinkPHP5.0邮件发送配置与使用方法

通过以下步骤来实现ThinkPHP5.0环境下的邮件发送功能:

####一、前置配置

  • 开启必要服务

    • 登录163邮箱账号,依次开启SMTP服务、POP3服务、IMAP服务。
    • 请注意:客户端授权码只显示一次,必须妥善记录。
  • 下载并整理PHPMailer类库

    • 从官方下载PHPMailer压缩包,解压后将class.phpmailer.phpclass.smtp.php分别放置在thinkphp5/extend/phpmailer目录下。
  • 安装OpenSSL扩展

    • 检查php_openssl.dll是否存在于F:\xampp\php\ext或其他扩展目录中,确认存在后开启 OpenSSL扩展。
    • 打开php.ini,查找extension=php_openssl.dll并去掉注释。
  • 命名空间申明

    • 打开thinkphp5/extend/phpmailer/class.phpmailer.php,于文件开头加入namespace phpmailer;
  • ####二、邮件发送代码示例

    在ThinkPHP5的具体业务逻辑中,例如控制器中的index方法,加入以下代码:

    use phpmailer\phpmailer;class Index extends Controller {    public function index() {        $toemail = '收件人邮箱'; // 接收方邮箱地址        $mail = new PHPMailer();        $mail->isSMTP(); // SMTP协议传输        $mail->CharSet = "utf8"; // 设置utf8编码,避免乱码        $mail->Host = "smtp.163.com"; // 163邮箱SMTP服务器        $mail->SMTPAuth = true; // 启用身份验证        $mail->Username = "163邮箱用户名"; // 163邮箱账号        $mail->Password = "客户端授权密码"; // 客户端授权码        $mail->SMTPSecure = "ssl"; // 使用SSL协议        $mail->Port = 994; // 163邮箱SSL端口        $mail->setFrom("从账号@163.com", "邮件标题");        $mail->addAddress($toemail, "收件人显示名");        $mail->addReplyTo("从账号@163.com", "回复地址");                $mail->Subject = "邮件标题"; // 邮件主题        $mail->Body = "邮件正文内容"; // 邮件内容        // 如果需要添加附件,可以使用以下方式:        // $mail->addAttachment("附件路径");                if (!$mail->send()) {            echo "邮件发送失败:" . $mail->ErrorInfo;        } else {            echo "邮件发送成功.";        }    }}

    ####三、注意事项

  • 错误处理

    • 如果在$mail->send()时返回false,请检查ErrorInfo输出以确定具体错误类型。
  • 代码引用

    • 确保在使用PHPMailer前,使用use phpmailer\phpmailer;语句进行命名空间声明。
  • 常见问题

    • 如果出现SMTP Error: Data not accepted等错误,通常是邮件内容过滤问题。可以尝试更换部分关键词后重新发送。
  • 通过以上配置和代码示例,可以在ThinkPHP5.0环境下顺利实现邮件发送功能。

    转载地址:http://cdotz.baihongyu.com/

    你可能感兴趣的文章
    openlayers 入门教程(十三):动画
    查看>>
    openlayers 入门教程(十二):定位与轨迹
    查看>>
    openlayers 入门教程(十五):与 canvas、echart,turf 等交互
    查看>>
    openlayers 入门教程(十四):第三方插件
    查看>>
    openlayers 入门教程(四):layers 篇
    查看>>
    OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
    查看>>
    Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
    查看>>
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
    查看>>
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中将某个feature置于最上层
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers中设置定时绘制和清理直线图层
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers实战:modifystart、modifyend互动示例
    查看>>
    Openlayers实战:判断共享单车是否在电子围栏内
    查看>>
    Openlayers实战:加载Bing地图
    查看>>
    Openlayers实战:绘制图形,导出geojson文件
    查看>>