단순하게 버튼을 눌렀을 때, 이미 입력된 문자열을 전송하는 방식으로 예제를 작성
구글 앱, Flask-Mail 모듈을 사용
사전 준비 작업
- google 계정 관리>보안>2단계 인증 클릭
- 앱 비밀번호 클릭, 앱 생성
※ 앱 생성 시, 16자리 코드가 단 한번 생성 되므로, 해당 비밀번호 저장하여 사용 할 것
- python : Flask-Mail 설치
pip install Flask-Mail
실습 코드
※ flask server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from flask import Flask, render_template, request from flask_mail import Mail, Message app = Flask(__name__) # 메일 설정 # TLS 방식 app.config['MAIL_SERVER'] = "smtp.gmail.com" #메일서버 app.config['MAIL_PORT'] = 587 # TLS 사용 시 app.config["MAIL_USERNAME"] = '구글 사용자 메일 주소' app.config["MAIL_PASSWORD"] = '앱 비밀번호-16자리' # Gmail 계정 앱 비밀번호를 사용 app.config['MAIL_USE_TLS'] = True app.config['MAIL_USE_SSL'] = False mail = Mail(app) #메일 객체 생성 @app.route('/', methods=['GET', 'POST']) def home(): if request.method == 'POST': msg = Message("Hey", sender='구글 사용자 메일 주소', recipients=['받을 메일 주소']) msg.body = "Hey how are you?" #전송할 메일 내용 mail.send(msg) #메일 전송 return "Email Sent!" #페이지 리턴, 다른 페이지 이동의 경우 render_template 메소드 사용 return render_template('email_index.html') if __name__ == '__main__': app.run(debug=True) | cs |
※ email_index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> <html lang="ko"> <!--버튼 클릭 시, 메일 단순 전송--> <!-- post 방식 사용 --> <body> <p>Flask-Mail turorial</p> <form method="POST" action="/"> <button>send email</button> </form> </body> </html> | cs |
※ 주의사항 및 확인사항
- Message 객체의 sender 지정 값을 변경하는 경우, 전송이 불가해지는 현상 발경
- 앱 비밀번호-16자리의 숫자의 경우 띄어쓰기를 모두 제거해야 함
댓글
댓글 쓰기