2010-10-21 27 views
0

J'ai écrit un code pour envoyer un e-mail depuis mon script PHP en utilisant PHPMailer. Pour une raison quelconque, les scripts n'envoient pas les messages.Envoyer un e-mail à partir de PHP Script


Is Here Mon code:

<?php 
require_once("PHPMailer/class.phpmailer.php"); 
$mail=new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465; 
$mail->Username = "[email protected]"; 
$mail->Password = "PASSHERE"; 
$mail->SetFrom = "[email protected]"; 
$mail->AddAddress("[email protected]"); 
$mail->Subject = "Confirm Web Lock Registration!"; 
$mail->Body = "Please confirm your Web Lock Registration by clicking here!"; 
$mail->WordWrap = 50; 

if(!$mail->Send()) 
{ 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
    echo "Message Sent!"; 
} 
?> 

C'est l'erreur Écho:

SMTP Error: Could not connect to SMTP host. Message was not sent.Mailer error: SMTP Error: Could not connect to SMTP host. 
+0

Recevez-vous votre message d'erreur en écho et si oui, qu'est-ce que c'est? –

+0

Pourriez-vous donner plus d'informations sur le problème? Imprime-t-il le message d'erreur ou dit-il "Message envoyé!" mais vous ne le recevez toujours pas? – erjiang

+0

@Zachary Brown: Ne partagez jamais votre nom d'utilisateur et votre mot de passe publiquement :) – Sarfraz

Répondre

2

J'utilise aussi PHPMailer, j'ai juste essayé vos paramètres et j'ai eu la même erreur. Voici mes paramètres de travail de sorcière pour moi (je montre avec - >> choses que vous n'avez pas sorcière, ou sont différentes pour moi)

$mail->PHPMailer = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
->> $mail->SMTPSecure = "ssl"; 
->> $mail->Host = "smtp.gmail.com"; //not ssl://smtp.gmail.com 
$mail->Port = 465; etc... 

Tout le reste est le même, sauf que je ne me mot Envelopper, mais j'ai vérifié, il ne pose pas le problème.

1

Vous devez spécifier gmail nom d'utilisateur et mot de passe parce que c'est la ce que vous utilisez dans les paramètres SMTP:

$mail->Username = "[email protected]"; 
$mail->Password = "yourgmailpassword"; 
+0

L'adresse est le nom d'utilisateur. L'entreprise utilise Google Apps pour les e-mails. –

3

Votre message d'erreur peut être provoqué par les paramètres du pare-feu sur votre serveur. Ce message d'erreur est généralement provoqué par un pare-feu bloquant les connexions sortantes sur le port.

Vous devez également vous assurer que l'extension openssl est activée.

Réponse originale que vous avez fixé:

Vous envoyez à [email protected] qui n'est pas l'adresse que vous voulez.

Vous devez supprimer le deuxième .com et changer à [email protected]

+0

Corrigé. Toujours le même problème. –

+0

J'ai ajouté quelques problèmes supplémentaires basés sur le message d'erreur que vous avez donné. –

1

Comme une pointe générale, essayez de le débogage:

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

De SO: Debugging PHP Mail() and/or PHPMailer

0

Juste un peu de conseil, vous pouvez également essayer d'utiliser Zend_Mail, vous pouvez l'utiliser heureusement sans avoir à parcourir toute la route MVC et il est très instructif