在Mac上Rails ActionMailer问题

时间:2009-12-21 17:54:57

标签: ruby-on-rails ruby macos postfix-mta actionmailer

过去几天我一直在努力学习使用Rails,而且我遇到了一些我无法用Google解决的问题。

所以我只是创建一个发送电子邮件的基本联系表单。一切似乎都在测试中正常工作,这告诉我表单正在运行,并且ActionMailer已正确实现,但是,我在配置ActionMailer时遇到了问题。我正在运行OSX 10.6.2。我有postfix运行并已验证它正在使用telnet localhost 25运行。当我尝试使用表单时,我收到“拒绝连接”错误。

这是我目前的配置:

config.action_mailer.smtp_settings = {
  :address  => 'localhost',
  :port     => 25
}

我以为我可能需要设置:domain但我对在这种情况下应该设置的内容感到困惑。

5 个答案:

答案 0 :(得分:6)

我的生活已经大约100倍了:在我的Mac上发送邮件作为我的mac上的传送方式,而不是:smtp,你可能想尝试给出一个镜头。在这个答案中,我假设您只是希望在Mac上发送邮件而实际上并不关心它是如何工作的。

我做的另一件事,如果我要在项目上一直连接到网络,就是将我传出的ActionMailer发起的邮件配置为通过gmail而不是我的本地mac。

ActionMailer::Base.delivery_method = :smtp

ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
  :address        => "smtp.gmail.com",
  :port           => 587,
  :domain         => "example.com",
  :authentication => :plain,
  :user_name  => "address@example.com",
  :password  => "secret"
}

这是针对域名的谷歌应用程序上设置的名为example.com的自定义域。您也可以创建一个Gmail帐户并通过那里发送内容。 (通过将example.com的所有实例更改为gmail.com)

答案 1 :(得分:6)

您需要启动后缀守护程序。您可以通过键入终端来判断您的端口是否已打开

telnet localhost 25

将尝试连接到25端口。如果postfix没有运行它就不会连接,如果是的话,点击ctl-]停止连接并“退出”退出telnet。

如果没有连接,则需要启动后缀守护程序:

sudo launchctl start org.postfix.master

然后尝试连接telnet。它应该连接。现在您已准备好从ActionMailer类发送电子邮件。

sudo launchctl stop org.postfix.master

停止后缀守护程序

答案 2 :(得分:1)

我跟着this guide,一切正常。主要是:

sudo postfix start

然后

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
   :address => "localhost",
   :port => 25
}

答案 3 :(得分:0)

如果您将'127.0.0.1'替换为'localhost'来查看这是IPv4还是IPv6还是您的解析器存在问题,它是否有效?

答案 4 :(得分:0)

在开发使用enter link description here时发送和验证邮件的另一种好方法。

从他们的网站引用:

  

MailCatcher运行一个超级简单的SMTP服务器,该服务器捕获发送给它的任何消息以显示在Web界面中。运行mailcatcher,将您喜欢的应用程序设置为smtp://localhost:1025而不是默认的SMTP服务器,然后查看http://localhost:1080以查看到目前为止已到达的邮件。

它拦截所有收件人的邮件,因此很容易在一个地方检查所有邮件。