it-swarm.com.de

Debugging PHP Mail () und / oder PHPMailer

Ich habe ein ziemliches Problem beim Senden von E-Mails aus einem PHP Skript. Einige Daten:

  • Shared Hosting, kein SSH-Zugang, nur Hosting-Provider-Panel
  • PHP Version 5.2.5
  • Letztes Jahr habe ich eine Seite erstellt, die keine Probleme mit dem Versenden von E-Mails mit demselben Hosting hatte
  • Nehmen wir an, die Domain lautet "domain.com" und meine private Adresse lautet "[email protected]". Dies geschieht aus Gründen der Anonymität im folgenden Code.

Hier ist der Code:

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

Und hier ist was ich bekomme:

Nachrichtenversand fehlgeschlagen Mail-Funktion konnte nicht instanziiert werden.

Was gelinde gesagt verblüffend ist. Kann ich irgendetwas tun, um zumindest einige aussagekräftigere Fehler zu erhalten? Warum wird Code aus der Klasse in meiner Datei angezeigt?

26
Agos

Es sieht so aus, als ob die class.phpmailer.php-Datei beschädigt ist. Ich würde die neueste Version herunterladen und es erneut versuchen.

Ich habe immer die SMTP-Funktion von phpMailer verwendet:

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

Und wenn Sie Debug-Informationen benötigen:

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