2013-02-21 43 views
0

这是我的问题,本质上 - 我建立了一个wordpress contact.php模板,它将提交表单并将其发送到我的Gmail。然而,问题在于它只有不到一半的时间才能收到电子邮件,所以我必须获得其他电子邮件。php mail()往往没有到达地址

与此相关的下一个问题是,我没有设置一个文件来记录发出的消息。我的问题基本上是 - 是否有可能以任何方式检索未记录的已发送电子邮件?通常是由托管服务提供商维护的电子邮件缓存?我拥有的唯一信息是IP地址,这在这种情况下几乎没有任何帮助。

谢谢。

+0

你有什么尝试? – 2013-02-21 11:40:35

+1

日志中的任何错误?你有检查过你的垃圾邮件文件夹吗?你能告诉我们代码吗?你的问题目前的格式不能回答。 – BenM 2013-02-21 11:41:22

+1

您是否阅读过关于此主题的任何以前的问题(请参阅本页下方的相关列表,右侧侧栏)? [这个问题](http://stackoverflow.com/questions/859345/php-mail-not-showing-up-at-gmail-but-shows-up-at-hotmail-and-other-3rd-party-isp例如,rq = 1)可能是感兴趣的。 – sjwarner 2013-02-21 11:43:28

回答

2

可能被您的垃圾邮件过滤器击中。 PHP的mail()函数很容易出现这种情况,因为邮件是从通常未配置SPL的Web服务器发送的,接收邮件系统寻求帮助他们过滤掉垃圾邮件。

我不认为我可以回答如何检索已发送的丢失邮件的问题 - 只有您的托管服务提供商可以真正帮助您,但我的猜测是他们无法提供帮助。他们不太可能保留出站电子邮件的时间超过必要的时间。如果幸运的话,他们可能会记录电子邮件事件的日志,但即使这样也可能没有任何有用的数据。

虽然有一个问题:你有没有检查过你的Gmail垃圾邮件框?我不是Gmail用户,但大多数邮件系统都会保留带有过滤邮件的垃圾邮件框,以便用户可以检索到被标记为垃圾邮件的电子邮件。如果gmail不允许这么做,我会感到惊讶,如果这是邮件已经发送到的地方,那么问题就解决了。

为了将来,我建议切换为使用像你的邮件的像样的第三方库,如phpMailer

对于你来说,phpMailer的优势在于它可以配置为通过gmail发送邮件,这意味着你可以从自己的帐户发送给自己。就垃圾邮件过滤而言,这应该是非常有力的证据。它也应该更快交付,因为邮件将直接发送到Google的服务器,而无需首先在互联网上反弹。

phpMailer还将使您的邮件代码比使用原始mail()功能更清洁,并且它允许更多高级功能(如附件),而无需编写大量代码。

希望有所帮助。