我使用以下方法发送电子邮件:
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]
,我想提一下发生了一些不好的事情flash[:notice]
中显示该号码。我可以通过在迭代中实际调用传递方法而不是然后以批量发送来获得此数字但是如果没有发送一封电子邮件,我仍然不想增加计数。 答案 0 :(得分:2)
在config/environments/development.rb
中添加或取消注释以下行,然后重新启动服务器。
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
我假设您在development
production
添加行的config/environments/production.rb
答案 1 :(得分:0)
如果我正在编写代码以在控制器中发送电子邮件,我可以像这样编写来处理我的应用程序中的救援 我在控制器中使用了这样的东西:
if @user.save
begin
UserMailer.welcome_email(@user).deliver
flash[:success] = "#{@user.name} created"
rescue Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
flash[:success] = "User #{@user.name} creating Problems sending mail"
end
redirect_to home_index_path
end