Email utility module.

class SendgridConnector(sender, recipient, kwargs)[source]


Utility for sending emails using Sendgrid API Key.

_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 199
_abc_registry = <_weakrefset.WeakSet object>
static _add_recipients(email, email_recipients)[source]

Add multiple recipients to the sendgrid email object.

  • email (SendGrid) – SendGrid mail object
  • email_recipients (Str) – comma-separated text of the email recipients

SendGrid mail object with multiple recipients.

Return type:



Executes the sending of the email.

This needs to be a standalone method so that we can wrap it with retry, and the final exception can be gracefully handled upstream.

Parameters:email (SendGrid) – SendGrid mail object
Returns:urllib2 response object
Return type:dict
classmethod create_attachment(file_location, content_type, filename, disposition='attachment', content_id=None)[source]

Create a SendGrid attachment.

SendGrid attachments file content must be base64 encoded.

  • file_location (str) – The path of the file.
  • content_type (str) – The content type of the attachment.
  • filename (str) – The filename of attachment.
  • disposition (str) – Content disposition, defaults to “attachment”.
  • content_id (str) – The content id.

A SendGrid Attachment.

Return type:


send(email_sender=None, email_recipient=None, email_subject=None, email_content=None, content_type=None, attachment=None)[source]

Send an email.

This uses the SendGrid API.

The minimum required info to send email are: sender, recipient, subject, and content (the body)

  • email_sender (str) – The email sender.
  • email_recipient (str) – The email recipient.
  • email_subject (str) – The email subject.
  • email_content (str) – The email content (aka, body).
  • content_type (str) – The email content type.
  • attachment (Attachment) – A SendGrid Attachment.

EmailSendError – An error with sending email has occurred.