我正在运行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开发一起使用。
谢谢!
答案 0 :(得分:0)
配置Mercury SMTP服务器不要求身份验证。也许这是默认的?
对于Rails smtp设置,请使用:
ActionMailer::Base.smtp_settings = {
:address => "localhost",
:port => 25
}
这是我与Apache James服务器一起使用的配置。如果不需要身份验证,则必须省略大多数参数。