3

我无法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

这是能够发送电子邮件的桌面电子邮件客户端之一的服务器设置的屏幕截图:

在此处输入图像描述

最终情节转折:如果我使用 gmail 的 smtp,则此代码有效。

感谢你们的任何见解!

4

1 回答 1

1

我在 2017 年遇到了这个问题,将端口简单地更改为 587 对我有用:

德国来源https://hilfe.gmx.net/pop-imap/pop3/serverdaten.html 基本上指出端口 465 与 SSL 加密一起使用,对于 STARTTLS 加密,您必须使用端口 587。

于 2017-06-17T07:25:55.963 回答