2009-11-24 132 views
23

我試着在rails中瞭解電子郵件。我正在開發一些本地主機。是否有可能從本地主機發送電子郵件說一個正常的郵件帳戶,如Gmail?我有安裝郵件服務器嗎?目前我正在開發一個標準的導軌安裝。從本地主機發送電子郵件

回答

14

您可以設置的ActionMailer使用像這樣使用Gmail的SMTP服務器到config/environment.rb

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.server_settings = { 
    :address  => 'smtp.gmail.com', 
    :domain   => '<your domain>', 
    :port   => 587, 
    :user_name  => '<your gmail>', 
    :password  => '<your password>', 
    :authentication => :plain 
} 

編輯:如果您遇到任何困難,設置你的配置,顯示錯誤:

ActionMailer::Base.raise_delivery_errors = true 
+0

感謝,所以如果我試圖從本地主機發送電子郵件(不使發送者定期的電子郵件帳戶,如Gmail),以常規郵箱一樣gmail我在:domain,:user_name,:password和:authentication字段中輸入了什麼? – conspirisi 2009-11-24 13:32:17

+0

這隻適用於使用哪個郵件服務器的設置。來自地址,地址,主題等在其他地方發生了變化。有關如何執行此操作,請參閱ActionMailer文檔中的示例(http://api.rubyonrails.org/classes/ActionMailer/Base.html)。 – 2009-11-24 14:22:23

+0

for gmail:enable_starttls_auto:true有時候可能很必要 – Artur79 2011-07-31 14:41:03

0

你可以從本地主機發送它,你甚至可以設置發件人爲'真實'的郵箱例如[email protected]

但是,有些(或稱大多數)服務器不會接受這封郵件作爲其spam blocking strategy(無法驗證發件人身份)的一部分。然而,在過去,我有一些類似於python的工作在gmail上。

這麼好運氣;-)

5

看一看ActionMailer。在RAILS_ROOT/config/environment/,對於不同環境(開發,測試,生產)的配置設置這些文件

您指定這樣的DELIVERY_METHOD去一個文件,

ActionMailer::Base.delivery_method = :sendmail 

,或者如果你想

ActionMailer::Base.delivery_method = :smtp 

的設置的詳細例子已經公佈了Mikael通過小號

HTH

3

如果我正確理解您的情況,您希望使用自定義電子郵件地址(如[email protected])從本地計算機發送電子郵件。如果您已經爲您的電子郵件帳戶註冊域名(mycompany.com)很可能是託管您的網站的公司也有POP/SMTP服務器。如果是這樣,您可以使用Mikael S的示例,並將地址參數更改爲您的託管公司的smtp地址,並使用託管公司的用戶名/密碼。

如果您還沒有註冊您的自定義域名或者沒有託管服務提供商,您可以在本地計算機上安裝一個免費的電子郵件服務器。如果您使用WindowsXP,則可以通過添加/刪除程序 - > windows功能來添加IIS電子郵件服務器。如果您使用Linux,則可以使用存儲庫中可用的任何電子郵件服務器。安裝本地電子郵件服務器後,您將使用Mikael S的示例代碼,並在地址字段中使用127.0.0.1或localhost。如果您使用WindowsXP的電子郵件服務器,我認爲您不必輸入用戶名/密碼。

希望它可以幫助你。

25

更新導軌4。0
現在,你需要這些代碼,使其工作:

# I recommend using this line to show error 
config.action_mailer.raise_delivery_errors = true 

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.gmail.com', 
    :domain   => 'mail.google.com', 
    :port   => 587, 
    :user_name  => '[email protected]', 
    :password  => '******', 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 
+2

而且別忘了重新啓動你的rails服務器 – 2015-08-24 14:55:55