2010-10-13 3 views
0

J'apprends à faire des sites Web et je suis en train de mettre en place un site web simple pour mes affaires de parents. J'ai fait un formulaire de contact et le message est envoyé par courriel à l'adresse électronique de mes parents. Je viens de regarder un échantillon GMail le code PHP pour envoyer du courrier et il fonctionne quand je le tester avec MAMP, mais quand je le télécharger sur le site en direct, je reçois cette erreur:PHP Mailer fonctionne sur localhost (MAMP), mais pas sur le site en direct

SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.

Pourquoi ça ne marche pas sur le site en direct, mais cela fonctionne quand je l'ai testé sur MAMP? Voici mon code:

require("phpmailer/class.phpmailer.php"); 

$mail = new PHPMailer(); 
$mail->IsSMTP(); // send via SMTP 
$mail->Host  = "myparentswebsite.com"; 
$mail->Mailer = "smtp";  
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465; 

$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // SMTP username 
$mail->Password = "paswsword"; // SMTP password 

$webmaster_email = "[email protected]"; //Reply to this email ID 
$email= $_POST['email']; // Recipients email ID 
$name= $_POST['name']; // Recipient's name 
$mail->From = $webmaster_email; 
$mail->FromName = "parentswebsite"; 
$mail->AddAddress($email,$name); 
$mail->AddReplyTo($webmaster_email,"Webmaster"); 
$mail->WordWrap = 50; // set word wrap 

$mail->IsHTML(true); // send as HTML 
$mail->Subject = "Feedback from parentswebsite.com"; 
$mail->Body = $_POST['name']. " " .$_POST['email']. " ". $_POST['phone']. " ". $_POST['message'] ;//HTML Body 

echo "it works"; 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body 
if(!$mail->Send()) 
{ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else 
{ 
echo "We have received your message!"; 
} 

Répondre

1

essayer d'ajouter les éléments suivants:

$mail->SMTPSecure = "ssl"; 
$mail->SMTPKeepAlive = true; 

et changer l'hôte et le port à

$mail->Host='smtp.gmail.com'; 
$mail->Port='465'; 

si cela ne fonctionne pas, vérifiez que votre pare-feu serveurs ne ne bloquez pas les connexions sortantes vers gmail.com ou via le port 465.

vérifiez que vous disposez des fonctions comme fopen et/ou fsockopen permis

Vérifiez que vous avez curl php activé (pas sûr)

Questions connexes