Drupal - PHP SMTP 设置正确但电子邮件无法发送

Drupal - PHP SMTP Settings are correct but email will not send

当我的 Drupal 站点在用户注册后尝试发送欢迎电子邮件时,我收到以下错误:无法连接到 "secure.emailsrvr.com" 端口 465 的邮件服务器,请验证您的 "SMTP" 和 "smtp_port" 在 php.ini 中设置或使用 ini_set()

我首先在PHP.ini中设置如下:

 SMTP = secure.emailsrvr.com
    SMTP_PORT = 465
    sendmail_from = support@managerspitstop.com
    username = support@managerspitstop.com
    password = ****

但我仍然遇到上述错误,所以我将以下内容添加到 mail.inc 文件中,该文件是 Drupal 站点中的一个文件:

 ini_set("SMTP","secure.emailsrvr.com");
    ini_set("smtp_port","465");
    ini_set("username", "support@managerspitstop.com");
    ini_set("password", "*****");
    ini_set("sendmail_from", "support@managerspitstop.com");

但是还是报同样的错误。因此,我联系了 Rackspace,我与之设置了电子邮件,他们告诉我我使用的设置是正确的。为了测试这一点,我将电子邮件添加到 Outlook 2013 发送并通过电子邮件发送并收到一封电子邮件就好了。

我环顾四周,找不到解决办法。任何帮助将不胜感激。

请注意,这只是一个更好的调查手段的提示,而不是答案。

当您尝试发送电子邮件时,对当时发生的事情进行数据包级别的检查会很有帮助。

为此,安装 tcpdump:

apt-get install tcpdump

并开始数据包捕获(运行 作为 root):

tcpdump -i any -s 0 -w /tmp/sniff-465.pcap port 465

执行必要的步骤尝试将电子邮件提交到 SMTP 服务器,等待响应并按 CTRL+C 停止数据包捕获。可以分析生成的文件 (/tmp/sniff-465.pcap)(例如,使用 wireshark)以了解尝试的 SMTP 事务的确切行为。

该死的核弹!设法让它工作。原来我的电子邮件设置一直都是正确的。

我通过下载放置在 httpdocs/sites/all/modules/smtp 中的 Drupals SMTP 模块修复了它,然后我下载了 phpmailer 版本 2.2.1(仅当您是 运行 Drupal 6.x 时才需要并且执行不要使用高于 2.2.1 的 PHPMailer 版本,因为它不会工作)https://github.com/PHPMailer/PHPMailer/releases/tag/v2.2.1 我把它放在 httpdocs/sites/all/modules/smtp/phpmailer.

整理好后,我进入我的 Drupal 站点的管理部分,然后转到模块部分,输入电子邮件设置和 BAM,它起作用了:D。