2013-08-16 92 views
2

試圖建立自己的ActionMailer ::基地RubyRails - >這工作:Ruby on Rails的的ActionMailer SMTP設置

ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :domain    => "anythingworks", 
    :user_name   => "[email protected]", 
    :password    => "somePW", 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
    } 

很好..但它會很好,如果我可以用我的郵件服務器。但是,當我試圖這樣的:

ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.myowndomain.de", 
    :port     => 25, (tried 587) also 
    :domain    => "triedanything", 
    :user_name   => "mycorrectuser", 
    :password    => "yesitisthecorretpw", 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
    } 

嘗試很多不同的設置/變化。但沒有發送電子郵件。有沒有可用的日誌?認爲它的東西,因爲身份驗證...「登錄」,而不是「普通」不幫助......

有一些測試用telnet從命令行發送一些電子郵件。 gmail does not work from command line(say STARTTTLS or something)。我自己的域名郵件服務器(由某個提供商託管)稱「中繼訪問被拒絕」(來自命令行)。

Webmail都可以工作..

任何ideads?謝謝!

+0

啓用config.action_mailer.raise_delivery_errors = true是否提供其他信息? – steakchaser

+0

嘿,在application.rb中試過了,沒有看到任何附加信息。 – mho

回答

1

答案是「中繼訪問被拒絕」消息。您的smtp服務器需要配置爲中繼電子郵件才能正常工作。我懷疑你的smtp服務器被配置爲接受連接以便傳遞到你的域名,而不是在別處轉發郵件。

在smtp服務器的日誌文件中可能會找到同樣的錯誤信息。嘗試發送一封電子郵件給你自己(這只是一個接受,而不是一箇中繼,爲你的smtp服務器)。如果發送給自己的電子郵件已發送,但發送給其他域的郵件不發送,您將確認問題所在。

您的ISP可能有一個smtp服務器,您可以用於傳出電子郵件。如果您想使用自己的電子郵件服務器,則需要將其配置爲中繼電子郵件。

+0

謝謝,你的回答幫了我。正如你所建議我的smtp服務器做錯了什麼。那是對的。我的ISP用TLS寫了一些東西,看起來你在這裏需要它。使用另一臺SMTP服務器,它現在可以工作。謝謝 ! – mho