【问题标题】:Rails 3.0 Sending Email Error: Errno::ECONNRESET (Connection reset by peer)Rails 3.0 发送电子邮件错误:Errno::ECONNRESET(对等连接重置)
【发布时间】:2012-01-31 18:01:26
【问题描述】:

我正在尝试编写一种方法来向我网站上的所有成员发送电子邮件。一切似乎都很顺利,我收到一条消息说出了点问题。我检查了我的生产文件并收到以下消息:

 Errno::ECONNRESET (Connection reset by peer)

该应用在遇到此错误之前能够发送大约 15 封电子邮件。

不确定是否有帮助,但这是我的控制器代码:

 def sendLatestEmail
accounts = Account.all
latestFive = Opinion.find(
    :all,
    :order => "created_at DESC",
    :limit => 5
)
accounts.each do |a|
    if a.allow_email_notification
        AdminMailer.latest_email(a, latestFive).deliver
    end
end
flash[:message] = "Latest Emails Delivered"
redirect_to(admin_panel_path)
end

在我的 production.rb 文件中,我有如下内容:

 config.action_mailer.raise_delivery_errors = true
 config.action_mailer.perform_deliveries = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
   :address              => "smtpout.secureserver.net",
   :port                 => 80,
   :domain               => 'somesite.com',
   :user_name            => 'no-reply@somesite.com',
   :password             => 'password',
   :authentication       => 'login',
   :enable_starttls_auto => false 
}

对可能出现的问题有什么想法吗?

我在 godaddy 设置了一个电子邮件帐户,所以我不确定您可以发送的电子邮件数量是否有某种限制?

我一直在研究 simpleworker,但如果我能自己解决这个问题,我想确保不会浪费我的钱。

谢谢,

布赖恩

【问题讨论】:

  • 你确定你设置了正确的端口号吗?
  • 那个是godaddy建议我配置的端口号。
  • 通常,SMTP 端口是 25 和/或 2525。
  • 正如其他人已经指出的那样,80 不是 SMTP 的常用端口,但如果您能够传送单个邮件,则 SMTP 设置应该没问题并且不是问题。当另一端不想与您的服务器通信时,通常会出现此错误,因为身份验证问题或连接超时或用户在浏览器中按下停止按钮。您可以在 Google 周围搜索以了解更多信息。

标签: ruby-on-rails ruby


【解决方案1】:

用于 SMTP 出站的端口 80 有点奇怪(25 是典型端口),但如果它成功传递邮件...似乎是服务器问题 - 代码没有任何问题。

FWIW,我已停止尝试使用 SMTP,现在使用 http://postmarkapp.com/。他们的定价极具竞争力,并且通过两行配置(无需更改您的实际代码)与他们的 gem 一起进入 ActionMailer。不附属,只是传递它,因为我已经花费了足够多的时间试图让各种 SMTP 服务发挥作用。

【讨论】:

  • 是 - 邮戳完全避免使用 SMTP。它们提供了一个您可以向其发布消息的 API,以及一个处理所有集成的 gem,因为您已经在使用 ActionMailer。见github.com/wildbit/postmark-rails#readme
  • 酷。我会尝试一下。感谢您的帮助。
  • 嗨,Brian,如果这个答案有帮助,如果你能接受,那就太好了。
【解决方案2】:

长消息发送作业绝对应该在后台作业中完成,但您也可以使用 Kernel.fork 分叉该代码,让一段代码继续运行,尽管有时会导致一些奇怪的事情。

需要检查的一些事项:

是的,用于 smtp 的端口 80 听起来有点奇怪,是否真的有任何电子邮件最终被传递?

如果你在rails控制台中运行代码,它工作正常吗?

【讨论】:

    【解决方案3】:

    我用 mongrel 更新了服务器,它工作正常..webrick 有时无法解码长消息发送作业。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多