2010-05-24 10 views
22

डीबगिंग मैं PHP स्क्रिप्ट से मेल भेजने में समस्या के साथ काफी अटक गया हूं। कुछ डेटा:PHP मेल() और/या PHPMailer

  • साझा होस्टिंग, कोई SSH का उपयोग, केवल प्रदाता पैनल होस्टिंग
  • PHP संस्करण 5.2.5
  • पिछले साल मैं एक साइट एक ही होस्टिंग
  • साथ मेल भेजने जो कोई समस्या नहीं थी बनाया
  • मान लें कि डोमेन "domain.com" है और मेरा निजी पता निम्न कोड में एकता के लिए "[email protected]" है।

कोड यह रहा:

Message sending failed Could not instantiate mail function.

कौन सा कम से कम कहने के लिए चौंकाने वाला है:

<?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(); 
?> 

और यहाँ मैं क्या मिलता है। क्या कम से कम कुछ और सार्थक त्रुटियों के लिए मैं कुछ भी कर सकता हूं? मेरी फाइल में कक्षा से कोड क्यों दिख रहा है?

+0

गंभीर त्रुटि: क्लास 'PHPMailer' लाइन 20 पर /mailtest.php में नहीं मिला ? लाइन 20 पर क्या है? –

+0

@ मिहाई लाइन 20 $ मेल = नया PHPMailer() है; – Agos

उत्तर

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