2010-05-24 7 views
22

Je suis assez bloqué avec un problème d'envoi de courrier depuis un script PHP. Quelques données:Déboguer PHP Mail() et/ou PHPMailer

  • Hébergement mutualisé, pas d'accès SSH, panneau de fournisseur d'hébergement ne
  • version PHP 5.2.5
  • année dernière, je construit un site qui n'a eu aucun problème l'envoi de courrier avec le même hébergement
  • Disons que le domaine est "domain.com" et que mon adresse privée est "[email protected]" par souci d'anonymat dans le code suivant.

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

Et voici ce que je reçois:

Message sending failed Could not instantiate mail function.

Ce qui est déconcertant pour dire le moins. Est-ce que je peux faire quelque chose pour obtenir au moins quelques erreurs plus significatives? Pourquoi le code de la classe apparaît-il dans mon fichier?

+0

Erreur fatale: de la PHPMailer 'classe non trouvée dans /mailtest.php en ligne 20 ? Qu'y a-t-il à la ligne 20? –

+0

@Mihai la ligne 20 est $ mail = new PHPMailer(); – Agos

Répondre

37

Il semble que le fichier class.phpmailer.php soit corrompu. Je voudrais télécharger the latest version et réessayer.

J'ai toujours utilisé la fonction SMTP phpMailer:

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

Et si vous avez besoin debug info:

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

tout s'est bien passé. Merci! – Agos