2010-06-09 9 views
2

J'ai un script de courrier PEAR qui est utilisé pour envoyer des bulletins d'information à partir du site Web d'un client. J'ai utilisé le même code auparavant pour produire un autre système de newsletter et cela a bien fonctionné et été utilisé pour envoyer des emails à différentes adresses, cependant notre dernier client n'a reçu aucun des emails. Lorsque la newsletter est envoyée du site aux différents abonnés, y compris gmail, hotmail, yahoo et les e-mails de notre entreprise, les emails sont reçus correctement par toutes les adresses e-mail des clients. Comme il n'y a rien de différent entre leur système de messagerie et le nôtre, qui est géré par la même société d'hébergement, je dois conclure que c'est quelque chose à voir avec le domaine.PEAR mail ne pas envoyer à certaines adresses e-mail

Les e-mails sont envoyés aux adresses à partir du système, car j'ai un fichier journal stockant les adresses e-mail lorsque la fonction de sortie est appelée, mais le bulletin n'apparaît jamais dans la boîte de réception. J'ai créé un nouveau compte de messagerie pour le domaine et celui-ci ne reçoit pas non plus les emails. Il ne va pas dans un dossier spam car le système webmail marque les spams en ajoutant du spam dans le sujet.

J'ai essayé de vous connecter s'il y a des erreurs en utilisant les

$mail =& Mail::factory('mail'); 

foreach($subscribers as $recipient) 
{ 
    $send_newsletter = $mail->send($recipient, $headers, $body); 

    // LOG INFO 
    $message = $recipient; 

    if($send_newsletter) 
    { 
     $message .= ' SENT'; 
    } 
    elseif(PEAR::isError($send_newsletter)) 
    { 
     $message .= ' ERROR: '.$send_newsletter->getMessage(); 
    }   
    $message .= ' | '; 
    fwrite($log_file,$message); 
} 

suivants Cependant cette simple rendement SENT pour tous les destinataires, donc en théorie il n'y a rien de mal avec la fonction de diffusion. [EDIT - bien que je viens de remarquer que cela ne fonctionne pas car j'utilise le type 'mail' et le rapport d'erreur ne s'applique qu'à 'sendmail' ou 'smtp' - est-ce vrai?)

I Je ne connais pas grand-chose au sujet de PEAR ou de la fonction de publipostage, il me manque peut-être quelque chose d'important, mais j'aurais pensé que la dernière chose à faire est d'envoyer l'email, et ça devrait marcher. boîte de réception des clients.

Quelles sont les raisons pour lesquelles un domaine spécifique ne serait pas en mesure d'accepter les courriels lorsque d'autres domaines hébergés par la même société peuvent le faire.

Toute aide est grandement appréciée car le client et moi-même sommes à la fois confus et frustrés par le tout.

Vive

Répondre

0

Il semble qu'il y avait quelque chose qui se passe avec l'aide de l'option de messagerie pour le réglage d'usine. Quand je l'ai mis en place comme SMTP, il a envoyé à toutes les adresses e-mail correctement.

Si quelqu'un a une idée de la raison de cette situation, faites-le moi savoir. C'est génial de pouvoir trier quelque chose, mais c'est encore mieux de savoir pourquoi quelque chose ne fonctionnait pas.

1

La fonction de messagerie de PHP ne délivre pas réellement l'email aux boîtes aux lettres du destinataire. Il délivre simplement le courrier au logiciel de serveur de messagerie réel de votre serveur (postfix, sendmail, exim, etc.), et c'est ce qui fera le travail de livraison.

Étant donné que la plupart des mails sont en cours, il est évident que le script fonctionne. Vérifiez donc le journal de messagerie de votre serveur (/ var/log/maillog sur la plupart des systèmes de type Unix) et recherchez l'adresse e-mail en question. S'il y a un problème pour le livrer au serveur de messagerie du destinataire, il sera enregistré là.

Raisons de l'échec de livraison:

a) recevoir serveur de messagerie (est très pointilleux sur les en-têtes de courrier et l'envoi de votre serveur de) le client sur la chose dans un format trop détendu b) Votre serveur est sur un ou plusieurs (c) le serveur client fait la liste grise, et votre serveur abandonne avant l'expiration du délai d'expiration du greylist

Quelle que soit la nature du problème, le serveur client s'authentifie automatiquement. , parcourez les journaux de votre serveur de messagerie pour voir ce qui se passe avec l'adresse e-mail du destinataire. S'il est rebondi pour une raison quelconque, il sera enregistré et vous pourrez travailler à partir de là. S'il s'avère que le courrier est livré (un message de type "250 OK" est le statut de livraison), alors il y a quelque chose sur le client et vous aurez besoin de leur aide pour le déboguer, car l'email a été livré avec succès à leur système.

+0

Merci Marc pour votre réponse, m'aide à comprendre comment tout cela fonctionne. Je vais jeter un oeil dans les journaux du serveur et voir ce que je rencontre. Le principal point qui me dérange est que les serveurs de messagerie des clients et mes propres sociétés sont hébergés par le même fournisseur et contrôlés par nous (bien que probablement pas sur le même serveur partagé) que les serveurs qui envoient les emails (bien que serveur dédié), donc en théorie il devrait avoir la même liste noire pour les deux si c'était le problème. – andyface

Questions connexes