본문 바로가기
Data 엔지니어링/Airflow

[Airflow] Email Operator로 메일 전송하기

by imkus 2025. 1. 9.

1. Email 오퍼레이터란?

  • 이메일 전송해주는 오퍼레이터
  • 이메일 전송을 위해 사전 셋팅 작업 필요
email_t1 = EmailOperator(
        task_id = 'email_t1',
        to = 'fdew@naver.com',
        subject = 'Airflow 처리결과'
        html_content = '정상 처리되었습니다.<br/>'
    )

 

 

2. 사전 설정 작업 (Google)

  • 구글 메일 서버 사용
  • G-mail -> 설정 -> 모든 설정보기 -> 전달 및 POP/IMAP -> IMAP 사용
  • 구글계정관리 -> 보안 -> 2단계인증 -> 앱비밀번호셋팅
  • docker-compose.yaml 편집 (environment 항목에 추가)
AIRFLOW_SMTP_SMTP_HOST:'smtp.gmail.com'
AIRFLOW_SMTP_SMTP_USER:'{gmail계정}'
AIRFLOW_SMTP_SMTP_PASSWORD:'{앱비밀번호}'
AIRFLOW_SMTP_SMTP_PORT:587
AIRFLOW_SMTP_SMTP_MAIL_FROM:'{gmail계정}'

 

docker-compose.yaml 파일에 아래와 같이 추가

 

 

3.  email 오퍼레이터 예제코드

/*dags_email_operator.py*/

from airflow import DAG
import pendulum
import datetime
from airflow.operators.email import EmailOperator


with DAG(
    dag_id = "dags_email_operator",
    schedule = "0 8 1 * *",
    start_date = pendulum.datetime(2023, 3, 1, tz = "Asia/Seoul"),
    catchup = False
) as dag:
    
    send_email_task = EmailOperator(
        task_id = 'send_email_task',
        to = 'fdew@naver.com',
        subject = 'Airflow 성공메일',
        html_content = 'Airflow 작업이 완료되었습니다.'
    )

 

 

4. 동작확인

Log 확인하여 정상동작 확인

 

수신된 이메일 확인