with rails mail letter_opener for delivery_method action_mailer ruby ruby-on-rails-3 email smtp exchange-server

ruby - mail - sendgrid smtp rails



No se puede hacer que ActionMailer funcione con MS Exchange a través de SMTP (3)

Aquí está mi programa de prueba simple (usando ActionMailer 3.0.8, Ruby 1.9.2p180 Mac OS X):

require ''rubygems'' require ''action_mailer'' ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :address => "my_exchange_server", :port => 25, :domain => ''my_domain.org'', :authentication => :login, :user_name => ''my_user'', :password => ''my_password'', :enable_starttls_auto => false } ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.perform_deliveries = true ActionMailer::Base.default :from => ''from_email@my_company.com'' m = ActionMailer::Base.mail :to => ''to_email@my_company.com'', :subject => ''this is a test'', :body => ''this is a test'' m.deliver

Probando varios tipos de autenticación obtengo los siguientes errores:

: error simple:

smtp.rb:966:in `check_auth_response'': 504 5.7.4 Unrecognized authentication type. (Net::SMTPAuthenticationError)

:error de inicio de sesión:

smtp.rb:972:in `check_auth_continue'': 504 5.7.4 Unrecognized authentication type. (Net::SMTPSyntaxError)

: error cram_md5:

smtp.rb:972:in `check_auth_continue'': 504 5.7.4 Unrecognized authentication type. (Net::SMTPSyntaxError)

Sin error de autenticación:

protocol.rb:135:in `read_nonblock'': end of file reached (EOFError)

¿Algunas ideas?


tenía problemas de red similares. utilice el siguiente código en irb para obtener información de depuración directamente en la consola.

require ''net/smtp'' smtp = Net::SMTP.new(''ip_or_dns_address'', port) smtp.debug_output = $stdout smtp.enable_starttls_auto#skip if not needed smtp.start("domain", "user", "password", auth_type)

nunca realmente descubrió cuál era el problema. movieron el servidor de intercambio y el servidor de producción dejó de enviar correos electrónicos. No soy realmente un técnico de TI, pero había diferentes registros de depuración dependiendo de qué parte de la red estaba. finalmente "resolvió" el problema enviando un correo electrónico no autenticado ...


Puede conectarse al servidor SMTP y consultar los métodos de autenticación compatibles:

telnet smtp.server.net 25 EHLO

El servidor debe responder con al menos una línea que comience con 250-AUTH . Después de eso, se enumeran los métodos de autenticación compatibles. Lo más probable es que el servidor de Exchange solo admita la autenticación a través de GSSAPI o NTLM. En este último caso, es posible que pueda hacer que funcione con la gema ruby-ntlm y el método de autenticación ntlm . (Ver http://www.breckenedge.com/configuration-of-ruby-on-rails-actionmailer-for-microsoft-exchange-smtp )


Verificar qué esquemas de autenticación están habilitados

Podría ser: none, plain, login, cram_md5, NTLM, StartTLS

  • Uso de Telnet para conectarse a buzones POP3 de Exchange 2003 y uso de SMTP para enviar correos electrónicos con fines de resolución de problemas

Cómo acceder correctamente a Exchange

Buenos recursos que deberían ayudarlo a comprenderlo y solucionarlo.

Cómo podría cambiar Exchange para solucionar el problema

(en lugar de cambiar la forma de acceder a Exchange)

Espectro de Redmine

Útil para Ruby on Rails