You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wamp64环境Composer安装PHPMailer提示未定义命名空间问题咨询

问题解决方法

你当前代码的首要问题是 autoload文件加载顺序错误,PHP的use声明需要在自动加载文件引入之后才能识别对应的命名空间,你现在把use写在了require前面,自然找不到PHPMailer的命名空间,按照以下步骤调整即可:

  • 第一步:调整代码顺序,把autoload的引入语句放在所有use声明之前
  • 第二步:确认PHPMailer安装正常,进入你的wamp64根目录(E:/wamp64/),打开终端执行composer show phpmailer/phpmailer,如果输出版本信息说明安装成功,没有输出的话执行composer require phpmailer/phpmailer重新安装
  • 第三步:建议新增异常捕获逻辑,方便排查SMTP连接、发件配置等后续可能出现的问题

调整后的完整可运行代码如下:

<?php
// 先加载composer自动加载文件
require_once "E:/wamp64/vendor/autoload.php";

// 再引入对应命名空间的类
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

try {
    $mail = new PHPMailer(true); // 传入true开启异常抛出
    $mail->isSMTP();
    $mail->Host = 'smtp.mailtrap.io';
    $mail->SMTPAuth = true;
    $mail->Port = 2525;
    $mail->Username = '1d0cc54f7f6a43';
    $mail->Password = '2489181ecde70b';

    $mail->From = "from@yourdomain.com";
    $mail->FromName = "Full Name";
    // 注意必须添加至少一个收件人,否则会触发发送失败
    $mail->addAddress("recipient@example.com");
    $mail->addCC("cc@example.com");
    $mail->addBCC("bcc@example.com");
    $mail->isHTML(true);

    $mail->Subject = "Subject Text";
    $mail->Body = "<i>Mail body in HTML</i>";
    $mail->AltBody = "This is the plain text version of the email content";
    $mail->send();
    echo "邮件发送成功";
} catch (Exception $e) {
    echo "邮件发送失败: {$mail->ErrorInfo}";
}

如果调整后仍有问题,可检查当前Wamp的PHP版本是否满足PHPMailer 6.x的最低要求(PHP 5.5及以上),不符合的话切换到更高的PHP版本即可。

内容的提问来源于stack exchange,提问作者Sayna Sadeghipour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:30:03