def METHOD_NAME(self, email_sender=None, email_recipient=None,
         email_subject=None, email_content=None, content_type=None,
         attachment=None):
    """Send an email.
    This uses the SendGrid API.
    https://github.com/sendgrid/sendgrid-python
    The minimum required info to send email are:
    sender, recipient, subject, and content (the body)
    Args:
        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.
    Raises:
        EmailSendError: An error with sending email has occurred.
    """
    if not email_sender or not email_recipient:
        LOGGER.warning('Unable to send email: sender=%s, recipient=%s',
                       email_sender, email_recipient)
        raise util_errors.EmailSendError
    email = mail.Mail()
    email.from_email = mail.Email(email_sender)
    email.subject = email_subject
    email.add_content(mail.Content(content_type, email_content))
    email = self._add_recipients(email, email_recipient)
    if attachment:
        email.add_attachment(attachment)
    try:
        response = self._execute_send(email)
    except urllib.error.HTTPError as e:
        LOGGER.exception('Unable to send email: %s %s',
                         e.code, e.reason)
        raise util_errors.EmailSendError
    if response.status_code == 202:
        LOGGER.info('Email accepted for delivery:\n%s',
                    email_subject)
    else:
        LOGGER.error('Unable to send email:\n%s\n%s\n%s\n%s',
                     email_subject, response.status_code,
                     response.body, response.headers)
        raise util_errors.EmailSendError