2010-05-24 22 views
22

我很困擾從PHP腳本發送郵件的問題。 一些數據:調試PHP郵件()和/或PHPMailer

  • 共享主機,沒有SSH訪問,只託管服務提供商面板
  • PHP 5.2.5版
  • 去年我建了一個網站,其中有沒有問題,發送郵件使用相同的託管
  • 讓我們假設域名是「domain.com」,而我的私人地址是「[email protected]」,以下面的代碼是出於匿名考慮。

下面的代碼:

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$to = "[email protected]"; 
$subject = "Hi"; 
$body = "Test 1\nTest 2\nTest 3"; 
$headers = 'From: [email protected]' . "\r\n" . 
    'errors-to: [email protected]' . "\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("[email protected]", "Agos"); 
$mail->SetFrom("[email protected]","My Site"); 
$mail->Subject = "Test Message"; 
$mail->Body = $message; 
$mail->Send(); 
?> 

這裏是我所得到的:

Message sending failed Could not instantiate mail function.

這是莫名其妙的,至少可以說。我能做些什麼來獲得至少一些更有意義的錯誤?爲什麼從我的文件中顯示的類的代碼?

+0

致命錯誤:類 '的PHPMailer' 中/mailtest.php沒有發現在第20行?第20行是什麼? – 2010-05-24 10:54:18

+0

@Mihai第20行是$ mail = new PHPMailer(); – Agos 2010-05-24 11:32:15

回答

37

它看起來像class.phpmailer.php文件已損壞。我會下載the latest version並重試。

我一直使用的PHPMailer的SMTP功能:

$mail->IsSMTP(); 
$mail->Host = "localhost"; 

如果你需要調試信息:

$mail->SMTPDebug = 2; // enables SMTP debug information (for testing) 
         // 1 = errors and messages 
         // 2 = messages only 
+0

一切都解決了。謝謝! – Agos 2010-05-24 13:52:24