11
votes

Dépannage du courrier PHP

Comment puis-je vérifier un problème avec le courrier envoyé sur mon serveur? Je cours un test simple: xxx

que le test génère le texte; Mais aucun courrier n'arrive jamais.

Comment puis-je continuer à suivre le problème?


0 commentaires

6 Réponses :


3
votes

du manuel PHP:

Return Values

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, **it 
does NOT mean the mail will actually reach the intended destination**.


0 commentaires

1
votes

Le premier endroit où je démarrerais est le journal d'erreur PHP, puis votre journal Sendmail. Essayez également SendMail à partir de la ligne de commande et vérifiez la configuration PHP pour vous assurer que vous êtes configuré correctement pour l'envoi de courrier.


0 commentaires

13
votes

C'est une longue histoire. Quelques points de balle (en supposant que le courrier () renvoie true et il n'y a pas d'erreur dans le journal des erreurs):

  • L'adresse de l'expéditeur ("de") appartient-elle à un domaine sur votre serveur? Sinon, faites-le ainsi.
  • Votre serveur est-il votre serveur sur une liste noire (E.G. Vérifier l'adresse IP sur SPAMHAUS.ORG)? Ceci est une possibilité à distance avec l'hébergement partagé.
  • Les mails sont filtrés par un filtre anti-spam? Ouvrez un compte avec un crédit-bailleur qui possède un dossier spam et découvrez. Essayez également d'envoyer un courrier à une adresse sans filtre anti-spam.
  • Avez-vous éventuellement besoin du cinquième paramètre "-f" de courrier () pour ajouter une adresse de l'expéditeur? (Voir la commande Mail () dans le manuel PHP)
  • Si vous avez accès à des fichiers journaux, vérifiez celles-ci, bien sûr, comme suggéré ci-dessus.
  • Vérifiez-vous la adresse "à partir de:" pour les éventuels mails de rebond ("retourné à l'expéditeur")? Vous pouvez également configurer une adresse "erreurs-to" distincte.

    Pour les orateurs allemands, j'ai écrit un "quoi faire" assez exhaustif sur cette question il y a quelque temps. Voir ici .


4 commentaires

C'est probablement spamhaus.org


Non indiqué sur SPAMHAUS.ORG (ESTEW!) Le domaine de l'expéditeur appartient au serveur. J'ai essayé d'envoyer à un certain nombre de comptes de messagerie, ce qui ne le reçois pas. (.Mac, Gmail, Yahoo) Je vais passer par les fichiers journaux. Avez-vous des chances où vous savez où résident des journaux de messagerie? Merci


Quel type de machine / système / plate-forme?


Apache / 2.2.3 (Debian) PHP / 5.2.0-8 + Etch13



4
votes

Suivre les myles, si vous êtes sur une boîte Linux, faites-le sur la ligne de commande:

# echo “Body text.” | mail -s “Hello world” you@example.com


4 commentaires

Hmmm, commande introuvable. echo "texte du corps". | Mail -s "Hello World" Richtestani@mac.com -bash: Mail: Commande introuvable


Je pense que je commencerais à enquêter sur Sendmail, en regardant ps , rpm -qa , emplacements de journal sendmail typiques, peut-être le RC. * DIRS, et tout ce que je pouvais penser à . Il se peut que le courrier ne soit tout simplement pas installé là-bas?


BTW, vous voudrez peut-être supprimer votre premier commentaire ici, de sorte que votre adresse e-mail ne soit pas récoltée. Je vais le signaler pour attention.


Rien ne se passe. Bon sang, je déteste Linux



2
votes

Si tout le dépannage échoue - en supposant maintenant que mail () renvoie false pour des raisons inconnues - Basculez vers un script de diffusion comme Phpmailer qui vous permet de contourner la messagerie () tout à fait et connectez-vous directement via SMTP, et offre un mode de débogage étendu. De cette façon, vous devriez être en mesure de configurer une solution de travail ou de trouver le noyau du problème.


2 commentaires

J'ai effectivement essayé HTMLMimemail5, que je pense également utilise SMTP aussi bien mais ayant la même chance.


La classe a-t-elle un mode de débogage? Vous devriez obtenir des messages d'erreur SMTP sans avoir à vérifier les journaux. Phpmailer peut définitivement.



1
votes

Travaillez-vous sur un serveur Web en direct ici, ou quelque chose de plus dans le sens d'un bac à sable de développement personnel? (C'est-à-dire votre machine à domicile?) Si c'est ce dernier, je peux vous dire que j'ai eu beaucoup de problèmes dans le passé avec mon ISP (Cox) filtrant mes ports de courrier sortant. (Ils vous diront qu'ils ne le font pas, mais je suis certains ils font.)

J'ai aussi reçu des messages sortants que les le font en se faisant prendre dans la bobine de Cox Mail pendant des jours avant de me le livrer.

J'espère que c'est utile.


0 commentaires