[파이썬] Flask에서의 이메일 전송

Flask는 Python 웹 프레임워크로, 간편하고 빠르게 웹 애플리케이션을 개발할 수 있도록 도와줍니다. 이메일은 웹 애플리케이션에서 중요한 기능 중 하나이며, Flask에서도 이메일을 보내는 기능을 쉽게 구현할 수 있습니다.

Flask-Mail 확장기능 설치

Flask-Mail은 Flask 애플리케이션에서 이메일을 전송하기 위한 확장기능입니다. 먼저 Flask-Mail을 설치해야 합니다. 다음 명령어를 사용하여 Flask-Mail을 설치합니다.

pip install Flask-Mail

Flask-Mail 설정

Flask-Mail을 사용하기 전에, 이메일 서버의 설정을 위해 Flask 애플리케이션에서 MAIL_SERVER, MAIL_PORT, MAIL_USE_TLS, MAIL_USERNAME, MAIL_PASSWORD와 같은 환경 변수를 설정해야 합니다. 이러한 정보는 이메일 공급자(예: Gmail, Outlook)에서 제공되며, app.config에 설정해야 합니다.

# Flask-Mail 설정 예시
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'your-email@gmail.com'
app.config['MAIL_PASSWORD'] = 'your-email-password'

이메일 전송 기능 구현

Flask-Mail을 이용하여 이메일을 보내는 기능을 구현하는 것은 간단합니다. 다음은 Flask 애플리케이션에서 이메일을 전송하는 예시 코드입니다.

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)
mail = Mail(app)

# Flask-Mail 설정
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'your-email@gmail.com'
app.config['MAIL_PASSWORD'] = 'your-email-password'

# 이메일 보내기 예시
@app.route('/send-email')
def send_email():
    recipient = 'recipient-email@example.com'
    subject = 'Flask Mail Example'
    body = 'This is an email sent from Flask!'
    
    msg = Message(subject=subject, sender=app.config['MAIL_USERNAME'], recipients=[recipient])
    msg.body = body
    
    mail.send(msg)
    
    return 'Email sent successfully!'

if __name__ == '__main__':
    app.run()

위의 예제에서는 /send-email 경로로 GET 요청이 오면, 지정한 수신자에게 이메일을 보냅니다. 이메일 주소, 제목, 본문을 지정할 수 있으며, Message 클래스를 사용하여 이메일을 구성합니다. 이메일을 전송하기 위해 mail.send() 함수를 호출합니다.

Flask-Mail 확장기능을 사용하면 Flask 애플리케이션에서 간단하게 이메일을 보낼 수 있습니다. 이메일을 전송하는 기능은 웹 애플리케이션에서 유용하게 활용될 수 있으며, Flask-Mail을 사용하여 구현하는 것은 매우 간편합니다.