gpt4 book ai didi

ruby-on-rails - 如何从 ActionMailer 传递方法中引发/拯救

转载 作者:行者123 更新时间:2023-12-04 06:12:00 29 4
gpt4 key购买 nike

我正在使用以下方法发送电子邮件:

class Communicate < ActionMailer::Base
def message(sub,msg,people)
subject sub
bcc people
from 'my_email.s@gmail.com'
sent_on Time.now

body :greeting => msg
end
end

bcc 包含 4 或 5 个电子邮件地址。

在我的测试中,我注意到两件事:
  • 即使其中一封电子邮件不是实际电子邮件(例如 fake_email_no_domain ),它也不会向任何收件人发送电子邮件
  • 如果密件抄送列表的电子邮件地址错误(例如 nonexistent@gmail.com ),那么它仍会向其他收件人发送电子邮件,但仍会向日志抛出错误。

  • 在这两种情况下,抛出的错误是:
    Redirected to http://localhost:3000/
    Completed in 2601ms (DB: 1) | 302 Found [http://localhost/notifications]

    [2010-08-04 00:49:00] ERROR Errno::ECONNRESET: Connection reset by peer
    /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `eof?'
    /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `run'
    /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

    问题:
  • 有什么办法可以捕捉到这个错误?我正在展示一个 flash[:notice]给用户,我想提一下发生了不好的事情
  • 如果我的密件抄送列表有 5 封电子邮件,并且实际上只发送了 4 封电子邮件,因为第 5 封电子邮件不存在,那么毕竟完成后我可以获得实际发送的电子邮件数量吗?我想在我的 flash[:notice] 中显示该号码.我可以通过在迭代中实际调用交付方法而不是批量发送来获得这个数字,但如果没有发送一封电子邮件,我仍然不想增加计数。
  • 最佳答案

    config/environments/development.rb 中添加或取消注释以下行并重新启动您的服务器。

    # Don't care if the mailer can't send
    config.action_mailer.raise_delivery_errors = false

    我假设您检查了 developmentproductionconfig/environments/production.rb 中添加行

    关于ruby-on-rails - 如何从 ActionMailer 传递方法中引发/拯救,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402701/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com