How do I stop email from being delivered in the interceptor?

Hi,

I am developing a rails 3 application.
I want to use a interceptor before delivering emails.
If a conditions meets, I want to stop the email.
How do I do that?

Thanks.

Sam

When you say 'delivering' emails do you mean 'sending'?.
Is it the rails app that is sending the email?
If so how is it initiating the send.
Can you not just test the conditions before sending?

Colin

Hi,

I am developing a rails 3 application.

I want to use a interceptor before delivering emails.

If a conditions meets, I want to stop the email.

How do I do that?

Have a look at the railscast for actionmailer in rails 3. The last part of the video is about intercepting

the emails so it gets sent to the address you specify in your config.

Sam Kong wrote in post #984511:

Hi,

I am developing a rails 3 application.
I want to use a interceptor before delivering emails.
If a conditions meets, I want to stop the email.
How do I do that?

Thanks.

Sam

Sam, did you get a solution with an interceptor? I tried returning
false but the email is still delivered.

Sam Kong wrote in post #984511:

Hi,

I am developing a rails 3 application.
I want to use a interceptor before delivering emails.
If a conditions meets, I want to stop the email.
How do I do that?

Thanks.

Sam

You can throw an exception in the interceptor.

I had the same problem, and stumbled upon this while reading the source
code:

class MailInterceptor
  def self.delivering_email(email)
    email.perform_deliveries= false
  end
end

@jaden_c, I tried the "perform_deliveries = false" in my interceptor but
the message still sends.

class CANSPAMInterceptor
  def self.delivering_email(message)

    ......

    message.perform_deliveries = false if message.to.size == 0
  end
end

Is there something else I need to know?

kt