No need to check in normal code, just do everything as usual and this interceptor will prevent you from spamming people who do not want any emails.
Its not perfect(missing bc/bcc filters but if should be fine for 90% of cases)
#config/initializers/blacklisted_emails.rb
class MailInterceptor
def self.delivering_email(message)
if User.where(:email => message.to, :receive_emails => false).any?
message.perform_deliveries = false
end
end
end
Mail.register_interceptor(MailInterceptor)