Source code for airflow.providers.smtp.notifications.smtp
# 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.from__future__importannotationsfromfunctoolsimportcached_propertyfromtypingimportAny,Iterablefromairflow.exceptionsimportAirflowOptionalProviderFeatureExceptiontry:fromairflow.notifications.basenotifierimportBaseNotifierexceptImportError:raiseAirflowOptionalProviderFeatureException("Failed to import BaseNotifier. This feature is only available in Airflow versions >= 2.6.0")fromairflow.providers.smtp.hooks.smtpimportSmtpHook
[docs]classSmtpNotifier(BaseNotifier):""" SMTP Notifier. :param smtp_conn_id: The :ref:`smtp connection id <howto/connection:smtp>` that contains the information used to authenticate the client. """
[docs]defnotify(self,context):"""Send a email via smtp server."""withself.hookassmtp:smtp.send_email_smtp(smtp_conn_id=self.smtp_conn_id,from_email=self.from_email,to=self.to,subject=self.subject,html_content=self.html_content,files=self.files,cc=self.cc,bcc=self.bcc,mime_subtype=self.mime_subtype,mime_charset=self.mime_charset,custom_headers=self.custom_headers,)