2009-06-18 291 views
2

我正在使用GMail SMTP服务器发送邮件。 和PHPMailer作为邮件发送脚本。GMail SMTP发送邮件,收到错误(4.7.0),但发送邮件!

我收到此错误(我记录所有的SMTP的错误,那就是无论何时,PHPMailer的::发送失败): -

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

但邮件实际发送。 (这通过匹配发送邮件的时间戳和日志中的时间戳知道。)

这怎么可能? 那个错误是什么意思?

UPDATE:我想我的问题并不清楚。让我改述一下: -

我是不担心如果PHPMailer能够发送邮件到GMail SMTP后邮件丢失。但我担心PHPMailer已经返回错误,但邮件已发送。可能吗?

回答

2

我认为SMTP无法保证传送。它是一种存储转发机制。这就是为什么有些电子邮件可能会丢失(例如,如果在转发邮件的过程中继电器发生故障)。

如果您正在依靠重要功能的电子邮件,您可能需要执行某种反馈机制(可能通过响应)。然后,如果在特定的时间范围内没有收到回复,请重新尝试。

UPDATE:这是绝对可能的。所有你需要的是一个邮件服务器,它会给你一个错误代码。它可能因各种原因发送错误代码,太多无法列出。我提出了上述方法,因为你不应该仅仅依靠信任来服务器响应,特别是如果它没有任何种类的原子性/酸性。