Source code for airflow.providers.amazon.aws.hooks.ses
# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License."""This module contains AWS SES Hook"""importwarningsfromtypingimportAny,Dict,Iterable,List,Optional,Unionfromairflow.providers.amazon.aws.hooks.base_awsimportAwsBaseHookfromairflow.utils.emailimportbuild_mime_message
[docs]classSesHook(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` """def__init__(self,*args,**kwargs)->None:kwargs['client_type']='ses'super().__init__(*args,**kwargs)
[docs]defsend_email(self,mail_from:str,to:Union[str,Iterable[str]],subject:str,html_content:str,files:Optional[List[str]]=None,cc:Optional[Union[str,Iterable[str]]]=None,bcc:Optional[Union[str,Iterable[str]]]=None,mime_subtype:str='mixed',mime_charset:str='utf-8',reply_to:Optional[str]=None,return_path:Optional[str]=None,custom_headers:Optional[Dict[str,Any]]=None,)->dict:""" 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. """ses_client=self.get_conn()custom_headers=custom_headersor{}ifreply_to:custom_headers['Reply-To']=reply_toifreturn_path:custom_headers['Return-Path']=return_pathmessage,recipients=build_mime_message(mail_from=mail_from,to=to,subject=subject,html_content=html_content,files=files,cc=cc,bcc=bcc,mime_subtype=mime_subtype,mime_charset=mime_charset,custom_headers=custom_headers,)returnses_client.send_raw_email(Source=mail_from,Destinations=recipients,RawMessage={'Data':message.as_string()}
)
[docs]classSESHook(SesHook):""" This hook is deprecated. Please use :class:`airflow.providers.amazon.aws.hooks.ses.SesHook`. """def__init__(self,*args,**kwargs):warnings.warn("This hook is deprecated. ""Please use :class:`airflow.providers.amazon.aws.hooks.ses.SesHook`.",DeprecationWarning,stacklevel=2,)super().__init__(*args,**kwargs)