airflow

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

  • -
728x90

Email Operator를 이용해 Task 실행 시 메일을 자동으로 전송하는 것을 해 보았다.

 

1. Gmail 기본 설정하기 (IMAP 설정)

먼저, 아래 순서대로 들어가 준다. 

Gmail 접속 >> 설정 >> 모든 설정보기 >> 전달 및 POP/IMAP

 

그 후, IMAP 사용 안함을 사용함으로 바꿔주면 된다. 아래 사진을 참고 하자

 

2. Gmail 앱 비밀번호 불러오기

아래와 같은 경로로 이동해준다.

Gmail 계정 -> 보안 -> 2단계 인증 -> 앱 비밀번호 생성

 

아래와 같은 화면이 나오면 잘 진행이 된거다. 저 앱 비밀전호는 한번 뜨면 다시는 볼 수 없으니 반드시 어딘가에 잘 보관해야 한다.

 

3. Docker-compose.yaml 파일 수정하기

vi를 통해 yaml 파일을 보면 아래처럼 environment 부분에다가 아래 코드를 추가 해주면 된다.

 

해당 코드를 enviroment 아래다가 본인의 정보에 맞추어서 넣어주면 완성이다. 

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}'

 

4. dag 작성하기

나는 아래와 같이 Dag를 작성해주었다.

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='송신하고자하는 이메일',
        subject="작업 진행 현황 공지",
        html_content="Airflow 작업을 완료했습니다."
    )

 

task 가 실행되면 subject 가 제목 html_content가 본문으로 to에 적힌 주소로 메일이 가게 된다.

 

5. dag 실행 후 확인하기 

 

airflow task가 제대로 돌아갔으면 이처럼 메일이 성공적으로 오게 된다. 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.