2010-09-09 6 views
1

J'ai configuré un expéditeur de courrier avec la bibliothèque d'e-mails Codeigniter. Tout fonctionne correctement jusqu'à ce qu'un utilisateur spécifie une adresse Gmail ou Hotmail comme adresse.Le courrier n'est pas envoyé à l'adresse gmail ou hotmail

par exemple

$email = $this->input->post('[email protected]'); 

Ceci est juste une adresse de retour pour moi de répondre. L'email lui-même est envoyé à partir d'un compte de messagerie Godaddy. Je me demande si quelqu'un a eu des problèmes similaires avec la bibliothèque email codeigniter ou l'hébergement Godaddy où la simple spécification d'une adresse de retour d'email entraîne la non-distribution des messages.

Le débogueur ne montre aucune erreur lorsque le formulaire est soumis. Si je change la valeur de l'adresse e-mail de l'utilisateur juste avant d'envoyer l'e-mail par exemple. chaîne remplacer gmail à xgmail le courrier est envoyé sans faute.

Voici mon tableau de configuration

'protocol' => 'sendmail', 
'smtp_host' => 'smtpout.secureserver.net', 
'smtp_port' => 25, 
'smtp_user' => '[email protected]', 
'smtp_pass' => 'password', 
'mailtype' => 'text'); 

J'ai essayé gmail et GoDaddy comme smtp_hosts. Les deux fois où

$email = $this->input->post('email'); 

est une adresse gmail ou hotmail le courrier ne soit livré. Ive peigné le net pour les réponses, mais ne peux pas sembler trouver des problèmes similaires.

EDIT: essayé de rendre plus clair.

+0

À quel moment exactement l'envoi de l'e-mail fail (et comment savez-vous) ?Je sais que la fonction de codeigniter pour l'envoi de mails renvoie un booléen, c'est tout ce que vous allez faire? – Matthew

+0

Il n'y a pas d'avis d'échec. Aucun e-mail n'est envoyé lorsque l'utilisateur spécifie une adresse Gmail ou Hotmail comme adresse de réponse – chris

+0

Avez-vous essayé d'autres fournisseurs de messagerie, par ex. votre serveur de messagerie privé? Avez-vous accès aux journaux de votre serveur SMTP qui gère l'envoi (ou ce que vous utilisez)? – Residuum

Répondre

0

Il n'est pas envoyé ou n'est pas livré? Deux choses différentes.

S'il n'est pas livré, les filtres anti-spam gmail/hotmail filtrent peut-être votre courrier électronique. Avez-vous vérifié votre boîte de courrier indésirable?

S'il n'est pas envoyé, l'e-mail peut ne pas être correct? Quel est le code de réponse SMTP de retour? est-ce 5xx?

Je voulais commenter, au lieu de "répondre" mais apparemment je ne peux pas encore. (désolé)

+0

Semble tout simplement pas livré. Pas d'erreurs La chose étrange est l'adresse e-mail entrée par les utilisateurs est juste l'email à répondre. Pas l'adresse email à partir de laquelle les emails sont envoyés. – chris

0

OK, vous essayez d'envoyer des e-mails via le serveur Gmail SMTP, mais vous avez défini un mauvais protocole. Définissez le protocole sur smtp et définissez le nom d'hôte et le port en conséquence.

+0

cuz maintenant sa configuration pour l'email de Godaddy. – chris

+0

sa confusion à expliquer. Toute l'adresse e-mail de l'utilisateur est un champ qui identifie son propre e-mail. L'email est envoyé de mon adresse à mon adresse mais pour une raison quelconque ce qu'ils indiquent comme leur propre email affecte la livraison du message ... – chris

+0

Peut-être que le serveur SMTP de Gmail et sendmail de Godaddy accepte tous les emails, mais ne les relaie pas l'hôte respectif. Pouvez-vous configurer un autre serveur de messagerie pour référence, tout serveur le fera, même si XAMPP peut être configuré comme serveur de messagerie. – Residuum

0

J'ai eu le même problème et après beaucoup de recherche j'ai finalement trouvé la solution. Ces paramètres de configuration fonctionnent pour moi:

$config['crlf'] = "\r\n"; 
$config['newline'] = "\r\n"; 
$config['protocol'] = 'smtp'; 
$config['smtp_host'] = 'relay-hosting.secureserver.net'; 
$config['smtp_port'] = '25'; 
$config['mailtype'] = 'html'; 

Remarque: il n'est pas nécessaire de fournir un nom d'utilisateur et un mot de passe. Assurez-vous que l'e-mail que vous envoyez ne contient pas trop de liens. Il sera marqué comme spam par le serveur mail de GoDaddy.

Si cela ne fonctionne toujours pas avec ces paramètres, utilisez le print_debugger pour voir la réponse exacte du serveur de messagerie:

$this->email->send(); 
echo $this->email->print_debugger(); 
exit; 
Questions connexes