2011-12-14 66 views
4

在我的Rails應用程序(在Mac上運行)中,我使用了一種叫做pony的寶石。當我通過小馬創建一條消息時,我得到以下輸出(離開滑軌控制檯)。Rails Mailer Ubuntu

#<Mail::Message:2186559360, Multipart: false, Headers: <Date: Tue, 13 Dec 2011 00:15:14 -0500>, <From: [email protected]>, <To: [email protected]>, <Message-ID: <[email protected]>>, <Subject: nothing>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>> 

此消息發送沒有問題。

對於在Ubuntu上運行的單獨應用程序,小馬會引發錯誤。

我沒有發佈錯誤,因爲我切換到一個稱爲mail的gem,它在發送消息後給出相同的輸出(沒有錯誤,控制檯說它發送正常)。但問題是沒有消息在Ubuntu系統上發送。

我懷疑這是因爲我從來沒有在Ubuntu系統上建立郵件系統(如果這是一個需要在編程世界中完成的行爲)。如果是這樣,我不知道我該怎麼做,這樣我的郵件纔會發送。

我正在使用rails 3和Ubuntu Oneiric Ocelot。

+0

在`/ var/log/mail.err`,`/ var/log/mail.warn`,`/ var /日誌/ mail.info`或`/ var/log/mail.log`? – sarnold 2011-12-14 01:39:04

回答

1

轉到Ubuntu的軟件中心。搜索

mail agent 

(你需要的是一個郵件傳輸代理)

現在一些所謂的 '狗' 應該有。安裝它。 (它對我有用,當我有這個問題)

1

而不是依靠操作系統有一個工作本地sendmail(這是OS X的,但我猜你的Ubuntu不),你可以使用外部SMTP服務器。

用於測試和開發,您的Gmail將工作:

Pony.mail(:to => '[email protected]', :via => :smtp, :via_options => { 
    :address    => 'smtp.gmail.com', 
    :port     => '587', 
    :enable_starttls_auto => true, 
    :user_name   => 'user', 
    :password    => 'password', 
    :authentication  => :plain, # :plain, :login, :cram_md5, no auth by default 
    :domain    => "localhost.localdomain" # the HELO domain provided by the client to the server 
}) 

如果你從一個生產應用程序發送電子郵件,你可以使用廉價的外部SMTP服務器從http://sendgrid.com/