GMX && Ruby Mail SMTP: достигнут конец файла

Я не могу заставить Mail (или Pony в этом отношении) подключиться для отправки электронной почты через smtp-сервер с учетными данными, номером порта и параметром адреса, которые, как я знаю, верны. Однако при использовании почтового клиента (thunderbird, ink... и т. д.) я могу нормально подключиться.

Вот трассировка стека, которую я получаю:

ruby gmx_test.rb
/Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:153:in `read_nonblock': end of file reached (EOFError)
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:153:in `rbuf_fill'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:134:in `readuntil'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:144:in `readline'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:937:in `recv_response'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:554:in `block in do_start'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:947:in `critical'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:554:in `do_start'
    from /Users/sy/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:519:in `start'
    from /Users/sy/.rvm/gems/ruby-2.1.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
    from /Users/sy/.rvm/gems/ruby-2.1.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
    from /Users/sy/.rvm/gems/ruby-2.1.0/gems/mail-2.5.4/lib/mail/message.rb:234:in `deliver'
    from /Users/sy/.rvm/gems/ruby-2.1.0/gems/mail-2.5.4/lib/mail/mail.rb:140:in `deliver'
    from gmx_test.rb:29:in `<main>'

Вот генерация кода:

require 'mail'

gmx_options = { :address              => "mail.gmx.com",
                :port                 => 465,
                :user_name            => '<username_redacted>@gmx.com',
                :password             => '<password_redacted>',
                :authentication       => 'plain',
                :enable_starttls_auto => true  }



Mail.defaults do
  delivery_method :smtp, gmx_options
end



Mail.deliver do
  to '<redacted>
  from '<username_redacted>@gmx.com'
  subject 'TEST'
  body 'Hi.'
end

Вот скриншот настроек сервера одного из настольных почтовых клиентов, который может отправлять электронные письма:

введите здесь описание изображения

Последний поворот сюжета: этот код работает, если я использую smtp от gmail.

Спасибо за любую информацию, которую вы, ребята, можете иметь!


person sybohy    schedule 14.02.2014    source источник
comment
Можете ли вы попробовать добавить :domain => 'gmx.com' в хэш gmx_options ?   -  person Jason Kim    schedule 14.02.2014
comment
да, это была хорошая идея на самом деле. К сожалению, это не сработало.   -  person sybohy    schedule 14.02.2014
comment
Есть ли другой порт, который вы можете попробовать?   -  person Jason Kim    schedule 14.02.2014
comment
неудачно. Я думаю, что это актуально: github.com/deanproxy/eMail/issues/7   -  person sybohy    schedule 14.02.2014


Ответы (1)


Я столкнулся с этой проблемой в 2017 году, и мне помогло простое изменение порта на 587:

Немецкий источник https://hilfe.gmx.net/pop-imap/pop3/serverdaten.html по существу указано, что порт 465 работает с SSL-шифрованием, для STARTTLS-шифрования необходимо использовать порт 587.

person Jogan Thums    schedule 17.06.2017