4

在我的 Rails 应用程序(在 Mac 上运行)中,我使用了一个名为 pony 的 gem。当我通过小马创建消息时,我得到以下输出(来自 rails 控制台)。

#<Mail::Message:2186559360, Multipart: false, Headers: <Date: Tue, 13 Dec 2011 00:15:14 -0500>, <From: you@me.com>, <To: myself@hotmail.com>, <Message-ID: <4ee6df6288e90_30b080443b3c8148e@My-Name-MacBook-Pro.local.mail>>, <Subject: nothing>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>>

此消息发送没有问题。

对于在 Ubuntu 上运行的单独应用程序,pony 会抛出错误。

我没有发布错误,因为我切换到了一个名为 mail 的 gem,它在发送消息后给出了相同的输出(没有错误,控制台说它发送正常)。但问题是在 Ubuntu 系统上没有发送任何消息。

我怀疑这是因为我从未在 Ubuntu 系统上设置过邮件系统(如果这是在编程世界中需要完成的操作)。如果是这样,我不确定我应该怎么做,这样我的邮件才会被发送。

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

4

2 回答 2

1

去ubuntu软件中心。搜索

mail agent

(您需要的是邮件传输代理)

现在应该有一个叫做“mutt”的东西。安装它。(当我遇到这个问题时它对我有用)

于 2011-12-14T17:09:17.740 回答
1

您可以使用外部 SMTP 服务器,而不是依赖操作系统来拥有一个正常工作的本地 sendmail(OS X 可以,但我猜您的 Ubuntu 没有)。

对于测试和开发,您的 Gmail 可以:

Pony.mail(:to => 'you@example.com', :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
})

如果您从生产应用程序发送电子邮件,则可以使用来自http://sendgrid.com/的廉价外部 SMTP 服务器。

于 2011-12-14T15:19:22.547 回答