0

我正在运行一个 Mercury SMTP 服务器(我的 XAMPP 堆栈附带),我正试图让我的 Rails 应用程序在开发模式下使用它。所以我将以下内容添加到我的 development.rb 文件中

ActionMailer::Base.delivery_method = :smtp
  ActionMailer::Base.perform_deliveries = true
  ActionMailer::Base.raise_delivery_errors = true
  ActionMailer::Base.smtp_settings = {
  :address              => "localhost",
  :port                 => 25,
  :domain => 'localhost',
  :user_name=>'newuser@localhost',
  :password=>'wampp',
  :authentication => :plain,
  :enable_starttls_auto => true
}

当我将身份验证参数设置为普通时,我得到:

504 Unknown or unsupported authentication method.

所以我检查了 ActionMailer API,发现还有两个选项 login 和 cram_md5。如果我使用其中任何一个,我会得到

501 Authentication failed - bad user or password.

该用户名/密码组合是默认值,因此它绝对有效。我已经尝试使用和不使用 @localhost 的 newuser,甚至创建了一个新的 Mercury 用户帐户(我有其他理由不这样做)并尝试使用和不使用 @localhost,我总是得到 501。

如果可能的话,我想在 Rails 端进行这项工作,而不是在 Mercury 中启用普通身份验证,但我想如果有人知道如何进行这项工作,我会接受该解决方案。最坏的情况我会推荐一个不同的 SMTP 服务器用于 Rails 开发。

谢谢!

4

1 回答 1

0

将 Mercury SMTP 服务器配置为不需要身份验证。也许这是默认值?

对于 Rails smtp 设置,请使用:

ActionMailer::Base.smtp_settings = {
  :address              => "localhost",
  :port                 => 25
}

这是我与 Apache James 服务器一起使用的配置。当不需要身份验证时,您必须省略大部分参数。

于 2013-01-29T16:54:50.263 回答