[python] Flask-WTF에서 사용자가 입력한 값을 이메일로 전송하는 방법은 어떻게 되나요?

Flask-WTF를 사용하여 사용자로부터 입력받은 값을 이메일로 전송하는 방법을 알아보겠습니다. 이 작업을 수행하기 위해 Flask-Mail 라이브러리를 사용할 것입니다. 먼저, Flask-Mail을 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다:

pip install Flask-Mail

이제 Flask-WTF에서 사용자로부터 입력받은 값을 이메일로 전송하는 코드를 작성해보겠습니다. 이 코드는 Flask 애플리케이션의 라우트 함수 내에 작성됩니다.

from flask import Flask, render_template, request
from flask_mail import Mail, Message
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import Email, DataRequired

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'  # 애플리케이션의 비밀 키를 설정합니다.

# Flask-Mail 설정
app.config['MAIL_SERVER'] = 'your-mail-server'  # 이메일을 보낼 SMTP 서버의 주소를 설정합니다.
app.config['MAIL_PORT'] = 587  # SMTP 서버의 포트 번호를 설정합니다.
app.config['MAIL_USE_TLS'] = True  # TLS(전송 계층 보안)을 사용할 것인지 설정합니다.
app.config['MAIL_USERNAME'] = 'your-email-username'  # 이메일 계정의 사용자 이름을 설정합니다.
app.config['MAIL_PASSWORD'] = 'your-email-password'  # 이메일 계정의 비밀번호를 설정합니다.

mail = Mail(app)

# 입력 폼 정의
class EmailForm(FlaskForm):
    name = StringField('이름', validators=[DataRequired()])
    email = StringField('이메일', validators=[Email(), DataRequired()])
    message = StringField('메시지', validators=[DataRequired()])
    submit = SubmitField('전송')

# 라우트 함수
@app.route('/', methods=['GET', 'POST'])
def index():
    form = EmailForm()

    if form.validate_on_submit():
        name = form.name.data
        email = form.email.data
        message = form.message.data

        # 이메일 보내기
        msg = Message('새로운 메시지가 도착했습니다!', sender='your-email', recipients=['your-recipient-email'])
        msg.body = f'보낸 사람: {name}\n이메일: {email}\n메시지: {message}'
        mail.send(msg)

        return '이메일이 성공적으로 전송되었습니다!'

    return render_template('index.html', form=form)

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

위 코드에서 ‘your-secret-key’, ‘your-mail-server’, ‘your-email-username’, ‘your-email-password’, ‘your-email’, ‘your-recipient-email’를 적절한 값으로 대체해주어야 합니다.

이제 위 코드를 실행하고 웹 브라우저에서 애플리케이션에 접속하여 입력 폼을 채워서 전송해보세요. 입력된 값은 지정한 이메일 주소로 전송될 것입니다.

이상입니다! Flask-WTF를 사용하여 사용자가 입력한 값을 이메일로 전송하는 방법을 알아보았습니다. 이를 통해 사용자로부터 받은 데이터를 적절히 처리하고, 필요한 경우 이메일을 통해 결과를 알릴 수 있습니다.