:py:mod:`airflow.providers.amazon.aws.hooks.ses`
================================================

.. py:module:: airflow.providers.amazon.aws.hooks.ses

.. autoapi-nested-parse::

   This module contains AWS SES Hook



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.hooks.ses.SesHook
   airflow.providers.amazon.aws.hooks.ses.SESHook




.. py:class:: SesHook(*args, **kwargs)

   Bases: :py:obj:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   Interact with Amazon Simple Email Service.

   Additional arguments (such as ``aws_conn_id``) may be specified and
   are passed down to the underlying AwsBaseHook.

   .. seealso::
       :class:`~airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   .. py:method:: send_email(self, mail_from, to, subject, html_content, files = None, cc = None, bcc = None, mime_subtype = 'mixed', mime_charset = 'utf-8', reply_to = None, return_path = None, custom_headers = None)

      Send email using Amazon Simple Email Service

      :param mail_from: Email address to set as email's from
      :param to: List of email addresses to set as email's to
      :param subject: Email's subject
      :param html_content: Content of email in HTML format
      :param files: List of paths of files to be attached
      :param cc: List of email addresses to set as email's CC
      :param bcc: List of email addresses to set as email's BCC
      :param mime_subtype: Can be used to specify the sub-type of the message. Default = mixed
      :param mime_charset: Email's charset. Default = UTF-8.
      :param return_path: The email address to which replies will be sent. By default, replies
          are sent to the original sender's email address.
      :param reply_to: The email address to which message bounces and complaints should be sent.
          "Return-Path" is sometimes called "envelope from", "envelope sender", or "MAIL FROM".
      :param custom_headers: Additional headers to add to the MIME message.
          No validations are run on these values and they should be able to be encoded.
      :return: Response from Amazon SES service with unique message identifier.



.. py:class:: SESHook(*args, **kwargs)

   Bases: :py:obj:`SesHook`

   This hook is deprecated.
   Please use :class:`airflow.providers.amazon.aws.hooks.ses.SesHook`.


