[파이썬] Flask를 이용한 이메일 발송

Flask는 파이썬 웹 프레임워크로, 이메일 전송 기능을 쉽게 구현할 수 있습니다. 이번 포스트에서는 Flask를 이용하여 이메일을 발송하는 방법에 대해 살펴보겠습니다.

필요한 패키지 설치

먼저, Flask와 Flask-Mail 패키지를 설치해야 합니다. Flask-Mail은 Flask와 함께 사용할 수 있는 이메일 관련 라이브러리입니다.

pip install flask
pip install flask-mail

Flask-Mail 설정

Flask-Mail을 사용하기 위해 앱 설정에서 이메일 서버와 인증 정보를 설정해야 합니다. Flask 앱의 config에서 다음과 같이 설정합니다.

app.config['MAIL_SERVER'] = 'smtp.example.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'your-email@example.com'
app.config['MAIL_PASSWORD'] = 'your-email-password'

위 예제에서는 Gmail의 SMTP 서버를 사용하고 있습니다. 따라서, MAIL_SERVER'smtp.gmail.com', MAIL_PORT587로 설정하고, MAIL_USE_TLSTrue로 설정해야 합니다. 또한, 이메일 발송에 사용할 이메일 계정의 아이디와 비밀번호를 MAIL_USERNAMEMAIL_PASSWORD에 설정해야 합니다.

이메일 발송하기

이제 실제로 이메일을 발송해보겠습니다. Flask에서 이메일을 발송하기 위해서는 flask_mail 모듈을 import 해야합니다.

from flask_mail import Mail, Message

이메일을 발송하는 예제 코드는 다음과 같습니다.

mail = Mail(app)

@app.route('/send_email')
def send_email():
    msg = Message('Hello', sender='your-email@example.com', recipients=['recipient@example.com'])
    msg.body = "This is a test email."
    mail.send(msg)
    return 'Email has been sent!'

위 예제에서는 /send_email 경로로 접속 시 이메일이 발송되도록 설정하였습니다. Message 객체를 생성하고, senderrecipients를 설정합니다. body에는 이메일 내용을 작성하면 됩니다. 이후 mail.send(msg)를 호출하여 이메일을 발송합니다.

Flask를 실행하고 /send_email 경로에 접속하면, 설정한 이메일 서버를 통해 이메일이 발송될 것입니다.

결론

Flask를 이용하여 이메일을 발송하는 방법에 대해 알아보았습니다. Flask-Mail을 사용하면 쉽게 이메일 발송 기능을 구현할 수 있으며, 이를 활용하여 다양한 웹 애플리케이션을 개발할 수 있습니다. Flask를 사용하여 이메일 발송 기능을 구현해보세요!