【问题标题】:Rails ActionMailer intermittently working with smtp-relay.gmail.comRails ActionMailer 间歇性地使用 smtp-relay.gmail.com
【发布时间】:2021-02-08 23:16:00
【问题描述】:

我在使用 SMTP 中继配置的 GMail 帐户时遇到错误。但出于某种奇怪的原因,实际上只有 40-50% 被发送,其余的则出错。 我正在使用 Rails 的 v6.0.3.2 ActionMailer 和 DelayedJobs gem v4.1.8。

错误

EOFError: end of file reached

SMTP 配置:

config.action_mailer.smtp_settings = {
  address: 'smtp-relay.gmail.com',
  port: 587,
  enable_starttls_auto: true
}

这是我用来发送电子邮件的代码:

class ApplicationMailer < ActionMailer::Base
  default from: 'email@email.es'
  layout 'mailer'
  def test
    mail(to: 'to@email.es', subject: 'Subject')
  end
end

我在 Rails 项目之外做了一些测试,同样的错误发生了:

require 'net/smtp'
Net::SMTP.start('smtp-relay.gmail.com', 587) do |smtp|
  smtp.enable_starttls
  smtp.send_message 'Hello world!', 'email@email.es', 'to@email.es'
end

【问题讨论】:

    标签: ruby-on-rails ruby email smtp


    【解决方案1】:

    语法错误

    class ApplicationMailer < ActionMailer::Base
      default from: 'email@email.es' # the first single quote position is wrong
      layout 'mailer'
    
      def test
        # to: ... requires to be a string
        mail(to: 'to@email.es', subject: 'Subject') # Closing quote on 'Subject missing' 
      end
    end
    

    【讨论】:

    • 感谢您的回复。出于隐私原因,我们不得不为我们的客户省略一些细节,而且我们一定忘记了添加引号。然而,这不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    相关资源
    最近更新 更多