python - Avoid Mandrill errors with Sentry -
i have installed sentry instance on server, , want configure send alert emails using mandrill , django integration djrill. here's relevant settings in sentry.conf.py
file i'm using:
extra_installed_apps = ( 'djrill', ) email_backend = 'djrill.mail.backends.djrill.djrillbackend' mandrill_api_key = '[... mandril api key ...]' default_from_email = 'my-mandrill-allowed@email.address' server_email = 'my-mandrill-allowed@email.address'
and setup works, except part reason mandrill doesn't allow setting message-id
header:
notsupportedbymandrillerror: invalid message header 'message-id' - mandrill allows reply-to , x-* headers
(this exception raised djrill, not response mandrill)
which set sentry here:
class messagebuilder(object): # ... @cached_property def message_id(self): if self.reference not none: return email_id_for_model(self.reference)
i have managed make work editing method , make return none
, no message-id
header set in email. don't edit/patch 3rd party code , have no idea if header needed elsewhere.
how accomplish correctly? switching mandrill not option right now.
thanks!
as can't change sentry's behavior, far can tell, i'd suggest implementing subclass of djrillbackend
removes message-id
header before messages sent. (untested):
class headerremovingbackend(djrillbackend): def send_messages(self, email_messages): message in email_messages: if 'message-id' in message.extra_headers: del message.extra_headers['message-id'] super(headerremovingbackend, self).send_messages(email_messages)
Comments
Post a Comment