问题是如何在ActionMailer发送邮件时捕获异常.对我来说听起来是不可能的,因为在这种情况下,ActionMailer应该发送邮件到mailserver,如果mailserver返回错误,ActionMailer应该显示这个错误.我只计算未送达的邮件.
你有什么想法如何实现吗?
谢谢!
解决方法
我在控制器中使用这样的东西:
- 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] = "Utente #{@user.name} creato. Problems sending mail"
- end
- redirect_to "/"