Rails 4:EOFError:仅在开发中的任何电子邮件后到达文件结尾

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 4:EOFError:仅在开发中的任何电子邮件后到达文件结尾相关的知识,希望对你有一定的参考价值。

我有rails应用程序,它使用devise ofr身份验证和sidekiq用于后台电子邮件作业。突然之间,仅在开发中,我收到以下与尝试从应用程序发送电子邮件相关的错误(例如,设计忘记密码)

     EOFError: end of file reached

奇怪的是,生产中的应用程序正在运行(heroku使用sendgrid设置)。我没有更改任何开发电子邮件设置....

  ActionMailer::Base.default :from => 'slfwalsh@gmail.com'

    config.action_mailer.delivery_method = :smtp
    config.action_mailer.perform_deliveries = true
    config.action_mailer.raise_delivery_errors = true
    config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => '@gmail.com',
      :user_name => "xxxxx@gmail.com",
      :password => "xxxxxxxx",
      :authentication => 'plain',
      :enable_starttls_auto => true
   }

    config.action_mailer.default_url_options = { :host => 'localhost:3000' }

我在网上找不到任何可以解决的问题。另外我注意到我在开发中使用类似设置的所有应用程序都会抛出相同的错误。我尝试了一个不同的电子邮件地址和密码(再次gmail),没有运气....

答案

对于那些像Aleksey想知道问题是如何解决的人一样,他添加了一个有效的域名。从domain: '@gmail.com'domain: "myprojectdomain.com"

另一答案

对于那些被卡住的人....这有用,但我不明白为什么。

 config.action_mailer.raise_delivery_errors = true

 config.action_mailer.delivery_method = :smtp

 config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  domain: "myprojectdomain.com",
  user_name: "xxxx@gmail.com",
  password: "xxxx",
  authentication: 'plain',
  enable_starttls_auto: true
 }

 config.action_mailer.default_url_options = { :host => 'localhost:3000' }
另一答案

对我来说,在我的Devise配置文件中设置发件人电子邮件解决了这个问题。

以上是关于Rails 4:EOFError:仅在开发中的任何电子邮件后到达文件结尾的主要内容,如果未能解决你的问题,请参考以下文章

保存设计用户时Rails EOFError(到达文件末尾)

Rails:创建/更新记录时出现 EOF 错误

EOFError: 文件末尾到达 Net::HTTP 问题

Rails 页面仅在刷新后应用

创建/更新记录时EOF错误:轨

Rails JavaScript 仅在您刷新页面时加载,而不是在原始页面加载时加载,这是怎么回事?