Impossible de se connecter à l'hôte SMTP
SMTP Erreur: impossible de se connecter à l'hôte SMTP. Message n'a pas pu être envoyé.
Mailer Erreur: Erreur SMTP: impossible de se connecter à l'hôte SMTP.
Je n'arrive pas à trouver un moyen de faire PHPMailer travail sous CentOS. Mail fonctionne très bien sous Windows avec XAMPP, mais j'ai toujours cette erreur sous Linux.
Le serveur SMTP est un Lotus Domino à l'écoute sur le port 25, CentOS machine n'a PAS de pare-feu et la chose étrange est que même mail() ne fonctionne pas. Il ne retourne rien (alors que sur Windows renvoie 1). Si j'envoie un mail par le biais de telnet via CentOS serveur, il fonctionne très bien donc je ne pense pas que c'est un problème de réseau. Il doit être lié à PHP, mais je ne sais pas comment.
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "192.168.x.x";
$mail->SMTPAuth = false;
$mail->From = "[email protected]";
$mail->FromName = "XXX";
$mail->AddAddress("[email protected]");
$mail->IsHTML(true);
$mail->Subject = "Test";
$mail->Body = "Test";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>
Juste pour clarifier le code ci-dessus fonctionne sur XAMPP (Windows).
J'ai débogué l'erreur sur PHPMailer et l'erreur qui se passe ici (class.smtp.php la méthode Connect()):
$this->smtp_conn = @fsockopen($host, //the host of the server
$port, //the port to use
$errno, //error number if any
$errstr, //error message if any
$tval); //give up after ? secs
//verify we connected properly
if(empty($this->smtp_conn)) {
$this->error = array("error" => "Failed to connect to server",
"errno" => $errno,
"errstr" => $errstr);
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />';
}
return false;
}
Il ressemble, il ne peut pas ouvrir le Socket...
Mise à JOUR: à l'Aide de $mail->SMTPDebug = 2; comme suggéré par Alvaro produit la sortie suivante:
SMTP -> ERREUR: impossible de se connecter au serveur: Permission denied (13)
source d'informationauteur raz3r
Vous devez vous connecter pour publier un commentaire.
Vous pouvez activer le mode debug avec le
SMTPDebug
de la propriété, par exemple:Messages d'erreur va s'afficher sur l'écran.
Mise à jour:
Un permission denied message d'erreur à l'aide de fsockopen() propose à l'utilisateur de PHP s'exécute en tant que n'est pas autorisé à ouvrir un socket. Si tu avais vérifié qu'il n'y a pas de pare-feu, il est possible que ce soit un SELinux problème 😕
CentOS 6.3
Ne pouvais pas envoyer des e-mails
après quelques recherche s'est avéré que SELinux est le blocage de la communication
SELinux est activé et configuré par défaut. En tant que tel SELinux ne pas permettre à Apache (httpd,phpmailer) pour utiliser la fonction sendmail et de faire toute sorte de connexion réseau.
À l'aide de la getsebool commande, nous pouvons vérifier si httpd démon est autorisé à établir une connexion sur le réseau et envoyer un e-mail.
Cette commande renvoie une valeur booléenne sur on ou off. Si sa large, nous pouvons la fixer à l'aide de l'suivantes:
Vous pouvez maintenant tester votre php, code pour voir si SendMail fonctionner correctement ou pas.