调试 PHP Mail() 和/或 PHPMailer

2022-08-30 13:40:43

我遇到了从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();
?>

这是我得到的:

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

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


答案 1

看起来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

答案 2

推荐