2009-06-18 5 views
2

J'utilise le serveur SMTP GMail pour envoyer des mails. Et PHPMailer comme script d'envoi de courrier.GMail SMTP pour envoyer du courrier, en recevant l'erreur (4.7.0), mais le courrier est envoyé!

J'ai reçu cette erreur (je note toutes les erreurs SMTP, qui est à chaque fois, PHPMailer :: Envoyer échoue): -

SMTP Error: Data not accepted.<p>SMTP server error: 4.7.0 Temporary System Problem. Try again later (WS) 

Mais les mails est effectivement envoyé. (Ce que je sais en faisant correspondre l'horodatage des courriers envoyés, et l'horodatage dans le journal.)

Comment est-ce possible? Que signifie cette erreur?

MISE À JOUR: Je pense que je n'étais pas clair dans ma question. Permettez-moi de le reformuler: -

Je suis pas inquiété si un mail est perdu après que PHPMailer est capable de l'envoyer à GMail SMTP. Mais je suis inquiet que PHPMailer ait retourné une erreur, mais le mail a été envoyé. C'est possible?

Répondre

2

Je pense que SMTP ne garantit pas la livraison de toute façon. C'est un mécanisme de stockage et retransmission. C'est pourquoi certains courriels peuvent disparaître (par exemple, si un relais s'est écrasé alors qu'il était en train de relayer le message).

Si vous dépendez des fonctions importantes de l'e-mail, vous pouvez appliquer un mécanisme de retour d'informations (éventuellement via une réponse). Ensuite, si une réponse n'est pas reçue dans un certain laps de temps, vous l'essayez à nouveau.

MISE À JOUR: C'est certainement possible. Tout ce dont vous avez besoin est un serveur de messagerie qui vous envoie un code d'erreur à la place. Il peut envoyer un code d'erreur pour une variété de raisons, trop nombreuses pour être listées. J'ai suggéré la méthode ci-dessus parce que, vous ne devriez jamais prendre des réponses de serveur sur la confiance seule, particulièrement si elle ne fait aucune sorte d'atomicité/acidité.

Questions connexes