class_docstr: Sends an email notification for a report recipient
class_docstr_tok: ["Sends","an","email","notification","for","a","report","recipient"]
code: def send(self) -> None:
      subject = self._get_subject()
      content = self._get_content()
      to = self._get_to()
      try:
          send_email_smtp(
              to,
              subject,
              content.body,
              app.config,
              files=[],
              data=content.data,
              images=content.images,
              bcc="",
              mime_subtype="related",
              dryrun=False,
              header_data=content.header_data,
          )
          logger.info(
              "Report sent to email, notification content is %s",
              content.header_data,
          )
      except SupersetErrorsException as ex:
          raise NotificationError(
              ";".join([error.message for error in ex.errors])
          ) from ex
      except Exception as ex:
          raise NotificationError(str(ex)) from ex
  
imports: import json
  import logging
  import textwrap
  from dataclasses import dataclass
  from email.utils import make_msgid, parseaddr
  from typing import Any, Optional
  import nh3
  from flask_babel import gettext
  from superset import app
  from superset.exceptions import SupersetErrorsException
  from superset.reports.models import ReportRecipientType
  from superset.reports.notifications.base import BaseNotification
  from superset.reports.notifications.exceptions import NotificationError
  from superset.utils.core import HeaderDataType, send_email_smtp
  from superset.utils.decorators import statsd_gauge
label_desc: Use image node_id 6 for calling the EmailNotification obj's underlying member method code with example usage: obj.send() without return types