无法声明 class PHPMailer\PHPMailer\Exception,因为该名称已被使用
Cannot declare class PHPMailer\PHPMailer\Exception, because the name is already in use
错误:
Cannot declare class PHPMailer\PHPMailer\Exception, because the name is already in use.
下面是正在使用的代码
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
// Load Composer's autoloader
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
function SendSMTPemail(){
try {
$mail = new PHPMailer(true);
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->Host='ssl';
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username='xy@xy.com';
$mail->Password='xxxxxxx';
$mail->setFrom('xy@xy.com');
$mail->AddAddress('yz@yz.com'); // SMTP password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465; // TCP port to connect to
$mail->addReplyTo('ab@ab.com', 'Information');
$mail->isHTML(true);
$mail->Subject = "Appointment Details";
$mail->Body = "Dear, <br> Please be informed that you have an appointment tommorow <br> Regards <br> ";
$mail->AltBody = '';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
//echo "success";
// $globals['emailstatus'] =true;
// header("Location: sendEmail.php");
} catch (Exception $e) {
//echo "fail";
// $globals['emailstatus'] =false;
echo "Message could not be sent.";
}
}
SendSMTPemail();
如果以下代码行被注释,
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
然后显示如下错误:
Uncaught Error: Class 'PHPMailer\PHPMailer\SMTP' not found
如果以下代码行被注释,
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
然后显示如下错误:
Cannot declare class PHPMailer\PHPMailer\Exception, because the name is already in use
以下是目录及其位置:
我曾经使用过 PHPMailer,之前使用 Gmail 的 SMTP,效果很好。有人可以帮助解释为什么显示此错误,尽管所需的文件位于正确的目录中吗?
调查结果(编辑)
我意识到 wp_content 文件夹和 wp_includes 中也有一个 PHPMailer 文件夹。很久以前,当我使用用于 gmail 的 PHPmailer 时,我已经将 PHPMailer 文件夹上传到 wp_content。我在文件中有这个文件夹的多个副本。一个在 vendor 文件夹的根目录中,由 composer 和其他人在 wp_content 和 wp_includes 中创建。 wp_includes 很奇怪,因为我不知道是作曲家创作的还是什么..我该怎么办。我只想使用 wp_content 中的那个,因为当我使用 gmail SMTP @Synchro
使用它时它工作正常
我保留了前两行注释,而 SMTP 的第三行未注释,它开始工作了
//require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
//require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
所以问题是由前两个 require 语句引起的,因为它们已经由作曲家在此行加载 require 'vendor/autoload.php'
除了 SMTP。因此,当我尝试一次评论所有三行并分别作曲时,两种情况都显示错误
试试
if (!class_exists('PHPMailer\PHPMailer\Exception'))
{
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
}
根据@Far 的发现,答案是:
require_once ABSPATH . 'wp-
includes/PHPMailer/Exception.php';
require_once ABSPATH . 'wp-includes/PHPMailer/PHPMailer.php';
require_once ABSPATH . 'wp-includes/PHPMailer/SMTP.php';
错误:
Cannot declare class PHPMailer\PHPMailer\Exception, because the name is already in use.
下面是正在使用的代码
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
// Load Composer's autoloader
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
function SendSMTPemail(){
try {
$mail = new PHPMailer(true);
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->Host='ssl';
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username='xy@xy.com';
$mail->Password='xxxxxxx';
$mail->setFrom('xy@xy.com');
$mail->AddAddress('yz@yz.com'); // SMTP password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465; // TCP port to connect to
$mail->addReplyTo('ab@ab.com', 'Information');
$mail->isHTML(true);
$mail->Subject = "Appointment Details";
$mail->Body = "Dear, <br> Please be informed that you have an appointment tommorow <br> Regards <br> ";
$mail->AltBody = '';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
//echo "success";
// $globals['emailstatus'] =true;
// header("Location: sendEmail.php");
} catch (Exception $e) {
//echo "fail";
// $globals['emailstatus'] =false;
echo "Message could not be sent.";
}
}
SendSMTPemail();
如果以下代码行被注释,
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
然后显示如下错误:
Uncaught Error: Class 'PHPMailer\PHPMailer\SMTP' not found
如果以下代码行被注释,
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
然后显示如下错误:
Cannot declare class PHPMailer\PHPMailer\Exception, because the name is already in use
以下是目录及其位置:
我曾经使用过 PHPMailer,之前使用 Gmail 的 SMTP,效果很好。有人可以帮助解释为什么显示此错误,尽管所需的文件位于正确的目录中吗?
调查结果(编辑) 我意识到 wp_content 文件夹和 wp_includes 中也有一个 PHPMailer 文件夹。很久以前,当我使用用于 gmail 的 PHPmailer 时,我已经将 PHPMailer 文件夹上传到 wp_content。我在文件中有这个文件夹的多个副本。一个在 vendor 文件夹的根目录中,由 composer 和其他人在 wp_content 和 wp_includes 中创建。 wp_includes 很奇怪,因为我不知道是作曲家创作的还是什么..我该怎么办。我只想使用 wp_content 中的那个,因为当我使用 gmail SMTP @Synchro
使用它时它工作正常我保留了前两行注释,而 SMTP 的第三行未注释,它开始工作了
//require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
//require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
所以问题是由前两个 require 语句引起的,因为它们已经由作曲家在此行加载 require 'vendor/autoload.php'
除了 SMTP。因此,当我尝试一次评论所有三行并分别作曲时,两种情况都显示错误
试试
if (!class_exists('PHPMailer\PHPMailer\Exception'))
{
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require '/home3/afaflawm/vendor/phpmailer/phpmailer/src/SMTP.php';
}
根据@Far 的发现,答案是:
require_once ABSPATH . 'wp-
includes/PHPMailer/Exception.php';
require_once ABSPATH . 'wp-includes/PHPMailer/PHPMailer.php';
require_once ABSPATH . 'wp-includes/PHPMailer/SMTP.php';