从Rails执行Auth到Exchange时无法识别的身份验证类型

bla*_*age 3 exchange-server ruby-on-rails

尝试使用Ruby on Rails中的Exchange Server进行身份验证时出现此错误:

504 5.7.4无法识别的身份验证类型

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address              => "x.x.x.x",
  :port                 => 25,
  :user_name            => "xxdomain\xxuser",
  :password             => "xxxxxx",
  :authentication       => :login,
  :enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种配置设置组合,包括更改设置以使用"普通"身份验证,添加域,将enable_starttls_auto设置为true,false,并完全删除它,删除端口.没有任何效果.

有任何想法吗?

Ste*_*eve 7

以下是来自链接:

Rails和Exchange电子邮件验证

1)将ruby-ntlm gem 添加到Gemfile并运行bundle install.

2)将NTLM SMTP库添加到config/environment.rb文件中.

# Load the rails application
  require File.expand_path('../application', __FILE__)
  require 'ntlm/smtp'
# Initialize the rails application
  RailsApp::Application.initialize! 
Run Code Online (Sandbox Code Playgroud)

3)设置环境文件以使用NTLM进行身份验证.

config.active_support.deprecation = :notify
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
 :address => '<your-email-server>',
 :domain => '<your-domain>',
 :user_name => '<your-username>',
 :password => '<your-unencrypted-password>',
 :port => 25,
 :authentication => :ntlm
Run Code Online (Sandbox Code Playgroud)

****用自己的***替换值