如何禁用 phpmailer 中的错误消息
how to disable error messages in phpmailer
我将 phpmailer 用于带有附件的联系表,并在 php 中构建了我自己的错误消息。
表格和电子邮件工作正常,但是当没有填写电子邮件地址并且没有选择要上传的文件时,我从 phpmailer
收到了这些错误消息
Invalid address: Could not access file:
这是我现在使用的 phpmailer 的代码:
// Software: PHPMailer - PHP email class |
// Version: 5.1
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = FALSE;
$mail->Port = 25;
$mail->Host = "localhost";
$mail->Mailer = "smtp";
$mail->SetFrom($_POST["user_email"], $_POST["user_name"]);
$mail->AddAddress("myname@myemailcom");
$mail->Subject = "Contactform";
$mail->WordWrap = 80;
$mail->MsgHTML($_POST["user_message"]);
if(is_array($_FILES)) {
$mail->AddAttachment($_FILES['user_attachment']['tmp_name'],$_FILES['user_attachment']['name']);
}
$mail->IsHTML(true);
if(!$mail->Send()) {
echo 'some error message';
}
else {
echo 'success message';
}
经过一些研究,我尝试添加:
$phpmailer->SMTPDebug=false; // without result
我怎样才能摆脱这些内置错误消息?
首先,您 运行 是一个 非常 旧版本的 PHPMailer,它已经过时了,并且使您的网站暴露在一些重大漏洞之下。在你做任何事情之前,upgrade。我还建议您将您的代码基于 PHPMailer 提供的当前示例。
在您发布的代码中,您根本没有启用调试输出(默认情况下它是关闭的),所以我怀疑您可能没有显示其他代码。您没有显示调试输出的样子,所以我们无法判断它是否真的是由 PHPMailer 生成的。
您的 PHPMailer 实例称为 $mail
,而不是 $phpmailer
,并且 SMTPDebug
属性 是一个整数,因此将该行更改为:
$phpmailer->SMTPDebug = 0;
我将 phpmailer 用于带有附件的联系表,并在 php 中构建了我自己的错误消息。 表格和电子邮件工作正常,但是当没有填写电子邮件地址并且没有选择要上传的文件时,我从 phpmailer
收到了这些错误消息Invalid address: Could not access file:
这是我现在使用的 phpmailer 的代码:
// Software: PHPMailer - PHP email class |
// Version: 5.1
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = FALSE;
$mail->Port = 25;
$mail->Host = "localhost";
$mail->Mailer = "smtp";
$mail->SetFrom($_POST["user_email"], $_POST["user_name"]);
$mail->AddAddress("myname@myemailcom");
$mail->Subject = "Contactform";
$mail->WordWrap = 80;
$mail->MsgHTML($_POST["user_message"]);
if(is_array($_FILES)) {
$mail->AddAttachment($_FILES['user_attachment']['tmp_name'],$_FILES['user_attachment']['name']);
}
$mail->IsHTML(true);
if(!$mail->Send()) {
echo 'some error message';
}
else {
echo 'success message';
}
经过一些研究,我尝试添加:
$phpmailer->SMTPDebug=false; // without result
我怎样才能摆脱这些内置错误消息?
首先,您 运行 是一个 非常 旧版本的 PHPMailer,它已经过时了,并且使您的网站暴露在一些重大漏洞之下。在你做任何事情之前,upgrade。我还建议您将您的代码基于 PHPMailer 提供的当前示例。
在您发布的代码中,您根本没有启用调试输出(默认情况下它是关闭的),所以我怀疑您可能没有显示其他代码。您没有显示调试输出的样子,所以我们无法判断它是否真的是由 PHPMailer 生成的。
您的 PHPMailer 实例称为 $mail
,而不是 $phpmailer
,并且 SMTPDebug
属性 是一个整数,因此将该行更改为:
$phpmailer->SMTPDebug = 0;