2010-02-28 148 views
1

当我在本地发送电子邮件时,我没有任何发送电子邮件的问题。发送电子邮件的问题

但是,当我上传到我的现场网站时,我无法发送电子邮件。

我使用PHP邮件功能。

谁能告诉我我需要找什么?

在此先感谢。

+0

你目前使用哪些代码? – zmbush 2010-02-28 22:14:37

+0

您的主机可能禁用了PHP邮件,可能是因为它没有使用SMTP身份验证来发送邮件。您可以尝试使用另一种发送电子邮件的方法,例如phpmailer类(请参阅http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html) – Tomba 2010-02-28 22:24:51

+0

属于serverfault? – MarkR 2010-02-28 22:27:43

回答

0

如果您有不与任何其他应用共享您没有亲自开发并拥有控制权的专用服务器,然后执行以下操作:

  • 确保您的PHP应用程序被发送到一个地方MTA正在接受消息
  • 诊断您的MTA未传递消息的原因。
  • 采取措施让您的服务器的IP从您当前所有的无数黑名单中除名。

另一方面,如果您的托管服务不是完全专用于您开发的应用程序并且完全控制(即不是垃圾邮件发送者),那么您几乎可以忘记它。

几乎每个单独的共享服务器提供商都有充满恶意的脚本,它们故意发送垃圾邮件或被垃圾邮件发送者用于发送垃圾邮件。剩下的只是发送非垃圾邮件的邮件,使其看起来像垃圾邮件。结果,他们都不断被列入黑名单。从这些黑名单中删除是毫无意义的,因为一旦您分享的所有垃圾邮件发送者都会重新列出垃圾邮件,您的服务器将立即重新列出。

结论:

  • 如果你想发送的任何邮件,在所有的,并希望把它交付,使用完全专用的服务器。

如果您有多个应用程序,则可能需要考虑使用专用的出站IP来传递来自该应用程序的消息。这减少了其中一个被列入黑名单的影响。 IPv4地址**并非真的不可用,这是不合理的。

如果您没有自己的IP地址空间,则需要从您的colo供应商处请求它。如果可能的话,询问他们有哪些可用地址,并在他们分配给您之前检查他们是否为黑名单。

**大多数电子邮件服务提供商不IPv6的

接受邮件
1

这很可能是你有你的邮件配置设置不正确。如上所述,服务器可能期望进行身份验证,或者可能未指定SMTP主机。

有一个非常非常好的免费PHP组件,名为PHP Mailer(可从http://phpmailer.worxware.com/获得),它很容易设置,具有非常强大的邮件功能 - HTML邮件,内联附件等,有很好的文档记录,传递邮件的方法,包括直接访问SENDMAIL或使用自己的SMTP服务器代码。

PHPMailer站在原生的PHP邮件功能上头和肩膀,所以它非常值得一看。