我使用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,它已经过时,并使您的网站暴露在一些主要漏洞中。在执行其他操作之前,请升级。我还建议您以PHPMailer提供的当前示例为基础编写代码。
在您发布的代码中,您根本没有启用调试输出(默认情况下是关闭的(,所以我怀疑可能还有其他代码没有显示。您还没有显示调试输出的样子,所以我们无法判断是否真的是PHPMailer在生成它
PHPMailer实例被称为$mail
,而不是$phpmailer
,并且SMTPDebug
属性是一个整数,所以将该行更改为:
$phpmailer->SMTPDebug = 0;