Ruby on rails Rails 2.3.9和SendGrid,拒绝连接-本地主机上的连接(2)

Ruby on rails Rails 2.3.9和SendGrid,拒绝连接-本地主机上的连接(2),ruby-on-rails,ruby,actionmailer,sendgrid,Ruby On Rails,Ruby,Actionmailer,Sendgrid,我已经浏览了谷歌和StackOverflow,但没有找到答案 我有一个使用Ruby 1.8.7的Rails 2.3.9应用程序,试图通过SMTP发送电子邮件,如下所示: ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :address => "smtp.sendgrid.net", :port => '25', :domain => "**********

我已经浏览了谷歌和StackOverflow,但没有找到答案

我有一个使用Ruby 1.8.7的Rails 2.3.9应用程序,试图通过SMTP发送电子邮件,如下所示:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :address => "smtp.sendgrid.net",
  :port => '25',
  :domain => "************.com",
  :authentication => :plain,
  :user_name => "***********",
  :password => "**********"
}
我的应用程序回溯如下所示:

/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/net/smtp.rb:551:in `initialize'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/net/smtp.rb:551:in `open'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:67:in `timeout'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:101:in `timeout'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/Users/jared/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/net/smtp.rb:525:in `start'
/Users/jared/.rvm/gems/ruby-1.8.7-p334/gems/actionmailer-2.3.9/lib/action_mailer/base.rb:682:in `perform_delivery_smtp'
/Users/jared/.rvm/gems/ruby-1.8.7-p334/gems/actionmailer-2.3.9/lib/action_mailer/base.rb:523:in `__send__'
/Users/jared/.rvm/gems/ruby-1.8.7-p334/gems/actionmailer-2.3.9/lib/action_mailer/base.rb:523:in `deliver!'
/Users/jared/.rvm/gems/ruby-1.8.7-p334/gems/actionmailer-2.3.9/lib/action_mailer/base.rb:429:in `deliver'
/Users/jared/rails/********/app/models/user.rb:160:in `send_welcome_email'
/Users/jared/rails/*********/app/controllers/users_controller.rb:35:in `create'

我想出来了。我的ISP阻塞了端口25,因此我必须更改配置:

ActionMailer::Base.smtp_settings = {
  :address => "smtp.sendgrid.net",
  :port => '587',
  :domain => "**********.com",
  :authentication => :plain,
  :user_name => "************",
  :password => "*********",
  :enable_starttls_auto => true
}

你能
telnet smtp.sendgrid.net 25
?您是否正在运行网络筛选器(如Little Snitch)并阻止传出连接?一些ISP还阻止发送端口25,要求您连接到他们的SMTP服务器(表面上是为了让他们的用户更难发送垃圾邮件)。不,我不能。这验证了我在下面提出的解决方案。