2015-05-07 105 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網站的管理部分,你可以做報告 - >最近的日誌條目,你可以找出失敗的原因。 –