he enviado con éxito de correo electrónico a un servidor remoto a través del puerto de su puerto 25 (no vigilado) con este script:Rubí Mail, la forma de lograr correo electrónico SSL
require 'rubygems'
require 'mail'
options = { :address => "mail.domain.com",
:port => 25,
:domain => 'mail.domain.com',
:user_name => '[email protected]',
:password => 'topsecret',
:authentication => 'login',
:enable_starttls_auto => true }
Mail.defaults do
delivery_method :smtp, options
end
mail = Mail.new do
from '[email protected]'
to '[email protected]'
subject 'This is a test email'
body File.read('body.txt')
end
puts mail.to_s
mail.deliver!
Lo que hay que hacer ahora es utilizar su puerto SSL 466. Cuando lo intento, me da la salida normal que detalla el mensaje, entonces se hace una pausa durante unos 2 minutos y tose esto:
/usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/timeout.rb:60:in `rbuf_fill': execution expired (Timeout::Error)
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/smtp.rb:911:in `recv_response'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/smtp.rb:554:in `do_start'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/smtp.rb:921:in `critical'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/smtp.rb:554:in `do_start'
from /usr/local/rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/net/smtp.rb:525:in `start'
from /usr/local/rvm/gems/ruby-1.8.7-p249/gems/mail-2.2.10/lib/mail/network/delivery_methods/smtp.rb:127:in `deliver!'
from /usr/local/rvm/gems/ruby-1.8.7-p249/gems/mail-2.2.10/lib/mail/message.rb:243:in `deliver!'
from testmail.rb:30
Creo que esto se debe a que no puede ni siquiera comenzar el proceso de autenticación SSL . ¿Cómo lo hago?
No tenemos ningún control sobre la asignación de puerto 466 y el puerto 587 no está disponible –
Hmm no parece que Net :: SMTP sea compatible con SSL de fábrica, el correo utilizado. Echa un vistazo aquí. http://stackoverflow.com/questions/708858/how-to-send-mail-with-ruby-over-smtp-with-ssl-not-with-rails-no-tls-for-gmail parece que puedes mono parche Net :: SMTP para trabajar ... – Doon
Lo intenté, y produce exactamente el mismo resultado desafortunadamente. –