2009-05-13 6 views
8

J'ai 2 sites où le courrier est envoyé à deux comptes gmail vanity. J'utilise PHP pour gérer le courrier, mais le courrier ne s'affiche pas sur gmail (pas dans le spam/courrier indésirable, il ne s'affiche pas). Si je change le PHP pour envoyer à mon compte hotmail personnel, le courrier apparaît. Idem pour un compte email personnel via mon FAI.Le courrier PHP n'apparaît pas à Gmail mais apparaît à Hotmail et à un autre compte tiers/FAI

Le courrier utilisé pour apparaître à ces 2 comptes gmail vanity, des idées pour lesquelles ils arrêteraient simplement?

+0

J'ai le même problème. J'ai aussi tous les en-têtes nécessaires, mais le courriel ne s'affiche pas. –

Répondre

8

Il est possible que vous n'ayez pas défini de données d'en-tête correctes et que ces e-mails soient bloqués avant même d'avoir atteint le dossier de spam.

Essayez d'ajouter quelque chose comme ceci:

$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]'; 

Ceci est le quatrième paramètre de la fonction mail().

+0

Je suis d'accord, c'est possible. –

+0

Quelles seraient les données d'en-tête appropriées? Je ne définis aucun en-tête: $ to = '[email protected]'; $ subject = 'mon sujet'; $ body = urlencode ($ commentaires); mail ($ to, $ sujet, urldecode ($ body), "De: {$ _POST ['email']}"); –

+0

Et pour réitérer, le courrier utilisé pour passer par les deux comptes. Aucun changement de code n'a été effectué. –

4

J'ai rencontré des problèmes dans le passé où certains fournisseurs d'email gratuits ne recevaient aucun email de mes serveurs.

Je trouve que quelques petites choses peuvent être le coupable, en plus de mettre les en-têtes corrects dans le message réel:

  • Assurez-vous que votre serveur est configuré pour reverse dns lookup
  • Assurez-vous que vous n'êtes pas en cours d'exécution une ouverture smtp relay
  • Assurez-vous que votre serveur n'a pas le vent dans une email blacklists (si vous aviez un relais ouvert, vous avez probablement avez été mis à l'index.

Il y a des chances que PHP envoie l'e-mail, mais les serveurs de Google rejettent tous les messages provenant de votre serveur.

Vous pouvez le tester en faisant une rapide:

mail -s Test [email protected] < /dev/null 

Si votre serveur est correct, vous recevrez un message dans votre gmail, si vous ne le faites pas, PHP est pas le problème.

0

semble plus probable que ce soit un problème de configuration du serveur et non un problème de PHP. En guise de remarque, j'ai trouvé que Gmail était plus tolérant que notre système local, donc j'ai pu envoyer des messages à mon compte Gmail, mais pas mon compte sur le domaine d'hébergement. Je ne pense pas que Google utilise des listes noires tierces, mais il se soucie de la configuration du serveur (s'identifie-t-il correctement, a-t-il des enregistrements SPF et RDNS correspondants, réagit correctement aux commandes). Vous pouvez essayer quelques services de test comme this ou this.

0

Je vois qu'il est trop tard mais ... le code suivant fonctionne pour Gmail.

<html> 
Mail Responder:<br><br> 
<?php 
$to = $_REQUEST['MyEmail'] ; 
$subject = $_REQUEST['subject'] ; 
$greeting = $_REQUEST['greeting'] ; 
$realname = $_REQUEST['realname'] ; 
$HisEmail = $_REQUEST['HisEmail'] ; 
$message = $_REQUEST['message'] ; 
$headers = 'From: '.$HisEmail; 
//$headers = 'From: $HisEmail' . "\r\n" . 
//'Reply-To: [email protected]'; 

$send = mail($to, $subject, $greeting."\n"."\n".$realname."\n"."\n".$HisEmail."\n"."\n".$message, $headers); 
if ($send) 
$mailReturns = "Mail sent successfully."; 
else 
$mailReturns = "Mail sent failed."; 

?> 
<?php echo $mailReturns; ?> 
</html> 
+1

Cela n'a pas fonctionné pour Gmail pour moi. Ran le même code exact et envoyé à un compte Gmail. –

Questions connexes