调试PHP Mail()和/或PHPMailer

我非常困扰于从PHP脚本发送邮件的问题。一些数据:

  • 共享主机,无SSH访问,仅主机提供商面板
  • PHP版本5.2.5
  • 去年,我建立了一个站点,使用相同的主机发送邮件没有问题
  • 在下面的代码中,出于匿名目的,假设域名是“ domain.com”,而我的私人地址是“ myaddress@mydomain.com”。

这是代码:

<?php

error_reporting(E_ALL);

ini_set("display_errors", 1);

$to = "myaddress@mydomain.com";

$subject = "Hi";

$body = "Test 1\nTest 2\nTest 3";

$headers = 'From: info@domain.com' . "\r\n" .

'errors-to: myaddress@mydomain.com' . "\r\n" .

'X-Mailer: PHP/' . phpversion();

if (mail($to, $subject, $body, $headers)) {

echo("Message successfully sent");

} else {

echo("Message sending failed");

}

require('class.phpmailer.php');

$message = "Hello world";

$mail = new PHPMailer();

$mail->CharSet = "UTF-8";

$mail->AddAddress("myaddress@mydomain.com", "Agos");

$mail->SetFrom("info@domain.com","My Site");

$mail->Subject = "Test Message";

$mail->Body = $message;

$mail->Send();

?>

这就是我得到的:

邮件发送失败无法实例化邮件功能。

至少可以说这令人困惑。我有什么办法要做,至少可以得到一些更有意义的错误?为什么类中的代码显示在我的文件中?

回答:

看来class.phpmailer.php文件已损坏。我将下载最新版本,然后重试。

我一直使用phpMailer的SMTP功能:

$mail->IsSMTP();

$mail->Host = "localhost";

如果您需要调试信息:

$mail->SMTPDebug  = 2; // enables SMTP debug information (for testing)

// 1 = errors and messages

// 2 = messages only

以上是 调试PHP Mail()和/或PHPMailer 的全部内容, 来源链接: utcz.com/qa/419116.html

回到顶部