I am setting up a mailer in my project and I am having difficulties sending mail through Exchange SMTP server.
I have installed the gem ruby-ntlm
but I am still getting unrecognized authentication type
.
This is my code
environment.rb
# Load the Rails application.
require File.expand_path('../application', __FILE__)
require 'ntlm/smtp'
# Initialize the Rails application.
Rails.application.initialize!
notifier.rb
class Notifier < ActionMailer::Base
default :from => "stephen.edwards@foostix.lu"
def test
mail(:to => "stephen.edwards@foostix.lu", :subject => "Test subject").deliver
end
end
development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "**REMOVED**",
:port => 587,
:domain => "CMSAD",
:user_name => "**REMOVED**",
:password => "**REMOVED**",
:authentification => :ntlm,
:enable_starttls_auto => false
}
Rails console test
Notifier#test: processed outbound mail in 5591.8ms
Net::SMTPAuthenticationError: 504 5.7.4 Unrecognized authentication type
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:968:in `check_auth_response'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:739:in `auth_plain'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:731:in `authenticate'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:566:in `do_start'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:519:in `start'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/mail-2.6.3/lib/mail/message.rb:236:in `block in deliver'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/actionmailer-4.1.8/lib/action_mailer/base.rb:527:in `block in deliver_mail'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications.rb:159:in `block in instrument'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/notifications.rb:159:in `instrument'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/actionmailer-4.1.8/lib/action_mailer/base.rb:525:in `deliver_mail'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/mail-2.6.3/lib/mail/message.rb:236:in `deliver'
from /media/development/Foostix-web/app/mailers/notifier.rb:5:in `test'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/actionpack-4.1.8/lib/abstract_controller/base.rb:189:in `process_action'
... 15 levels...
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:9:in `start'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:69:in `console'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /media/development/Foostix-web/bin/rails:8:in `<top (required)>'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `block in load'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
from /home/stephen/.rvm/gems/ruby-2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:241:in `load'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/stephen/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
However this works....
smtp = Net::SMTP.new('**REMOVED**', 587)
smtp.debug_output = $stdout
smtp.enable_starttls_auto#skip if not needed
smtp.start("CMSAD", "**REMOVED**", "**REMOVED**", :ntlm)
TLS connection started
<- "EHLO CMSAD\r\n"
-> "250-**REMOVED** Hello [**REMOVED**]\r\n"
-> "250-SIZE 104857600\r\n"
-> "250-PIPELINING\r\n"
-> "250-DSN\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250-AUTH GSSAPI NTLM LOGIN\r\n"
-> "250-8BITMIME\r\n"
-> "250-BINARYMIME\r\n"
-> "250 CHUNKING\r\n"
<- "AUTH NTLM **REMOVED**==\r\n"
-> "334 **REMOVED**\r\n"
<- **REMOVED**\r\n"
-> "235 2.7.0 Authentication successful\r\n"
=> #<Net::SMTP **REMOVED** started=true>
This is because you haven't included the
ntlm
library.Add the NTLM SMTP library to your
config/environment.rb
fileAdd the
ruby-ntlm gem
to yourGemfile
and runbundle install
.Gemfile:
bundle install
Add the NTLM SMTP library to your
config/environment.rb
file.Set up your environment file to authenticate with NTLM.
Finally, make sure you change your default from whatever email address you’ve been using to reflect the new Microsoft Exchange account, or you’ll receive a 5.7.1 Client does not have permissions to send as this sender error.
Found a typo, it is now working!
development.rb
Change
:authentification => :ntlm
to:authentication => :ntlm
Thanks for the support anyway!