본문 바로가기
Minding's Programming/Airflow

[Airflow] Email 오퍼레이터 사용해보기 (Gmail 서버 사용)

by Minding 2024. 7. 19.
728x90
반응형

Gmail 사전 설정 작업

 

Gmail > 설정 > 모든 설정보기 > 전달 및 POP/IMAP > IMAP 사용

 

구글 계정관리 > 보안 > 2단계 인증 > 앱 비밀번호 세팅

여기서 발급받은 비밀번호는 다시 볼 수 없으니 꼭 기억해두어야 한다.

 

 

airflow 설정

vi 편집기를 이용해 docker-compose.yaml 파일에 해당 내용을 추가해주어야 한다.

 

    AIRFLOW__SMTP__SMTP_HOST: 'smtp.gmail.com' # 사용할 서버
    AIRFLOW__SMTP__SMTP_USER: 'tlsfk48@gmail.com' # 로그인할 계정
    AIRFLOW__SMTP__SMTP_PASSWORD: '{password}' # 앱 비밀번호
    AIRFLOW__SMTP__SMTP_PORT: 587 # 사용할 포트
    AIRFLOW__SMTP__SMTP_MAIL_FROM: 'tlsfk48@gmail.com' # 보내는 사람으로 명시될 계정

파일을 열어 아래로 내리다 보면 enviroment라는 부분이 나오는데, 그 부분 하단에 이 내용들을 적어주면 된다.

 

그리고 난 뒤 아래 코드처럼 DAG 파일을 만들어 Airflow에서 잘 돌아가는지 확인하면 된다!

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 * *", # 매월 1일 8시
    start_date=pendulum.datetime(2024, 7, 1, tz="Asia/Seoul"),
    catchup=False
) as dag:
    send_email_task = EmailOperator(
        task_id='send_email_task',
        to='tlsfkaus4862@naver.com', # 수신자
        # cc= '참조'
        subject='Airflow 성공메일', # 제목
        html_content='Airflow 작업이 완료되었습니다' # 내용
    )

나는 gmail 계정으로 naver 계정에 메일을 보내는 것으로 실험해보았다.

 

결과는 성공적으로 메일이 전송되었다.

728x90
반응형

댓글