2015-05-07 150 views
1

当用户注册时,我的Drupal站点尝试发送欢迎电子邮件时,出现以下错误:未能连接到邮件服务器“secure.emailsrvr.com”端口465,验证“SMTP”和“SMTP_PORT”在php.ini中设置或使用的ini_set()Drupal - PHP SMTP设置正确,但电子邮件不会发送

我在第一次设置php.ini中的以下内容:

SMTP = secure.emailsrvr.com 
    SMTP_PORT = 465 
    sendmail_from = [email protected] 
    username = [email protected] 
    password = **** 

但我仍然得到了错误因此,我将以下内容添加到Drupal站点内的文件mail.inc文件中:

ini_set("SMTP","secure.emailsrvr.com"); 
    ini_set("smtp_port","465"); 
    ini_set("username", "[email protected]"); 
    ini_set("password", "*****"); 
    ini_set("sendmail_from", "[email protected]"); 

但仍然得到相同的错误。所以我联系了我设置了电子邮件的Rackspace,他们告诉我我使用的设置是正确的。为了测试这一点,我添加了电子邮件到Outlook 2013发送和电子邮件,并收到一封电子邮件就好了。

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

+0

您确定这些设置也用于发送电子邮件吗? – SheperdOfFire

+0

是的端口465是传出和传入是995.我问他们的实时聊天Rackspace,他们确认我正在使用的细节应该工作。所以一定是我没有设置在PHP设置或Drupals设置的权利,但我只是不知道什么:( –

回答

0

血腥破坏!管理得到它的工作。原来我的电子邮件设置一直都是正确的。

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

一旦进行了排序,我进入了我的Drupal站点的管理部分,进入模块部分并在电子邮件设置和BAM中键入它的工作:D。

0

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

当您尝试发送电子邮件时,对当时到底发生了什么进行数据包级别的检查将是有益的。

为此,安装的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事务的确切行为。

+0

在修复这个问题时,我发现了一个更简单的方法做到这一点。在Drupal网站的管理部分,你可以做报告 - >最近的日志条目,你可以找出失败的原因。 –