使用Rails进行Mercury Mail Server身份验证

时间:2012-11-21 21:55:35

标签: ruby-on-rails smtp actionmailer

我正在运行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
}

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

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开发一起使用。

谢谢!

1 个答案:

答案 0 :(得分:0)

配置Mercury SMTP服务器不要求身份验证。也许这是默认的?

对于Rails smtp设置,请使用:

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

这是我与Apache James服务器一起使用的配置。如果不需要身份验证,则必须省略大多数参数。