Eggs Sunny Side Up
본문 바로가기
프레임워크(Framework)/Flask

[Flask] 메일로 알림 전송

by guswn100059 2023. 7. 25.

모듈 설치

# 서버 구동시킬 객체 
from flask import Flask

# 메일, 메세지 함수, 변수 가져오기
from flask_mail import Mail, Message

 

DB에서 Select 데이터 조회하기

def db_connector_email(u_id):
    db = pymysql.connect(host='host url', port=포트번호, user='계정', passwd='계정 비밀번호', db='DB이름', charset='utf8')
    cursor = db.cursor()
    sql = f"SELECT u_email FROM tb_user WHERE U_ID='{u_id}';"
    cursor.execute(sql)
    # fetchall()로 조회된 데이터를 튜플에서 문자열로 변환하여 리스트에 추가합니다.
    result_list = [row[0] for row in cursor.fetchall()]
    db.close()
    return result_list

 

메일 알림 전송

app = Flask(__name__)

mail = Mail(app)

app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = '알림 보낼 이메일'
app.config['MAIL_PASSWORD'] = '이메일 앱 비밀번호'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)

@app.route("/webAlarm", methods = ["POST"])
def webAlarm():
    # 메일 알림 전송
    email = db_connector_email(value)
    print(email)
    msg = Message('Hello', sender='알림 보낼 이메일', recipients=email)
    msg.body = '침입이 감지되었습니다.'
    mail.send(msg)
    return ""

    
if __name__=='__main__':
    app.run(host='127.0.0.1',port=9000)

 

실제 메일 알림


참고 블로그)

https://roksf0130.tistory.com/126

댓글