2010-10-12 6 views
2

Le courrier php ne fonctionne pas. aucun message d'erreur. php.ini a des erreurs d'affichage et afficher E_ALL est également activé.Le courrier php ne fonctionne pas

<?php 
$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $body, $headers); 

?> 
+0

Comment savez-vous que cela ne fonctionne pas alors? –

+0

Je ne reçois pas l'e-mail –

+2

Essayez votre boîte de réception de spam ... – Shoban

Répondre

2

Tout d'abord, vérifiez la valeur de retour de mail()

$sent = mail($to, $subject, $body, $headers); 
if (!$sent) { 
    // there was some error in the message itself, our MTA rejected it or there's an error in MTA's config 
} else { 
    // message was accepted for delivery 
} 

En second lieu, vérifier PHP's e-mail settings (notez que sur un serveur Linux le sendmail_path est pertinent, alors que sur les serveurs Windows, il est SMTP et smtp_port) essayer envoyer un e-mail avec eux depuis une autre application. Troisièmement, en fonction du serveur SMTP que vous utilisez, recherchez dans ses journaux les éventuels avertissements ou erreurs (par exemple, impossible de contacter le serveur de destination, de ne pas être connecté au réseau, etc.). Quatrièmement, si vous vous êtes assuré que le courrier a bien quitté votre réseau, croisez les doigts et espérez que tout ira pour le mieux. Sérieusement, il n'y a plus rien que vous puissiez faire pour votre message électronique à partir de ce moment-là - et s'il n'est pas livré, il n'y a pas grand-chose que vous puissiez faire.

Découvrez également these tips sur légèrement augmente les chances que votre courrier ne sera pas marqué comme spam

+0

Les paramètres du serveur SMTP sont ignorés sous Linux. Le chemin d'accès à sendmail doit être correct et sendmail doit être installé cependant. –

+0

@Alexander Sagen: La page de documentation PHP liée explique cela. Edité pour clarifier. En outre, il peut s'agir de tout ce qui peut se transformer en sendmail, la plupart des MTA modernes installent un lien symbolique à partir de/usr/sbin/sendmail. – Piskvor

2

Merci à tous pour les réponses. C'était vraiment utile. Il était une question d'autorisation

drwxrwx --- 2 smmsp smmsp 4096 12 octobre 12:00/var/spool/clientmqueue/

changé ci-dessus pour

drwxrwx --- 2 apache smmsp 4096 12 octobre 12:56/var/spool/clientmqueue/

et ça a marché!

Questions connexes