English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
웹 기반 애플리케이션은 일반적으로 사용자에게/클라이언트가 이메일을 보내는 기능. Flask-Mail 확장은 어떤 이메일 서버 설정도 간단하게 설정할 수 있게 합니다
처음에는 Flask-Mail 확장은 pip 도구를 사용하여 설치할 수 있습니다. 다음과 같이 합니다 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 pip install Flask-Mail
그런 다음 다음 애플리케이션 파라미터 값 설정으로 Flask를 구성해야 합니다-Mail。
번호 | 파라미터 | 설명 |
1 | MAIL_SERVER | 메일 서버의 이름/IP 주소 |
2 | MAIL_PORT | 서버의 포트 번호 |
3 | MAIL_USE_TLS | 사용/전송 보안 계층 암호화 사용 중지 |
4 | MAIL_USE_SSL | 사용/보안 소켓 계층 암호화 사용 중지 |
5 | MAIL_DEBUG | 디버깅 지원, 기본적으로 Flask 애플리케이션의 디버깅 상태 |
6 | MAIL_USERNAME | 발신자의 사용자 이름 |
7 | MAIL_PASSWORD | 발신자의 비밀번호 |
8 | MAIL_DEFAULT_SENDER | 기본 발신자 설정 |
9 | MAIL_MAX_EMAILS | 전송할 메일의 최대 개수 설정 |
10 | MAIL_SUPPRESS_SEND | app.testing이 true로 설정되면 전송이 억제됩니다 |
11 | MAIL_ASCII_ATTACHMENTS | true로 설정되면 첨부 파일 이름을 ASCII로 변환합니다 |
flask-mail 모듈은 다음 중요한 클래스 정의를 포함하고 있습니다.
이는 이메일 메시지 요구를 관리합니다. 클래스 생성자는 다음 형식을 가집니다 -
번호 | 메서드 | 설명 |
1 | send() | Message 클래스 객체의 내용을 전송합니다 |
2 | connect() | 이메일 호스트와 연결을 엽니다 |
3 | send_message() | 메시지 객체를 전송합니다 |
이는 이메일을 캡슐화한 것입니다. Message 클래스의 생성자는 여러 가지 파라미터를 가집니다 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, reply-to, date, charset, extra_headers, mail_options, rcpt_options)
attach() - 메시지에 첨부 파일을 추가합니다. 이 메서드는 다음 파라미터를 받습니다 - filename - 附加할 파일의 이름 content_type - 파일의 MIME 타입 data - 원본 파일 데이터 disposition - 내용 처리, 필요한 경우
add_recipient() - 메시지에 다른 수신자를 추가합니다
다음 예제에서는 Google의 Gmail 서비스의 SMTP 서버가 Flask로 사용됩니다-Mail 설정의 MAIL_SERVER를 가져옵니다。
제1단계 - 코드에서 flask-mail 모듈에서 Mail과 Message 클래스를 도입합니다。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask_mail import Mail, Message
제2단계 - 그런 다음 다음 설정에 따라 Flask를 구성합니다-Mail。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = "*****" app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True
제3단계 - Mail 클래스의 인스턴스를 생성합니다。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 mail = Mail(app)
제4단계 - URL 규칙에 맵핑된 Python 함수(‘/‘)에서 Message 객체를 설정합니다。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 @app.route("/") def index(): msg = Message('Hello', sender='[email protected]', recipients=['[email protected]']) msg.body = "This is the email body" mail.send(msg) return "Sent"
제5단계 - 전체 코드는 다음과 같습니다. Python Shell에서 다음 스크립트를 실행하고 URL에 접근하세요: http://localhost:5000/。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) mail=Mail(app) app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = '[email protected]' app.config['MAIL_PASSWORD'] = "*****" app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True mail = Mail(app) @app.route("/") def index(): msg = Message('Hello', sender='[email protected]', recipients=['[email protected]']) msg.body = "Hello Flask message sent from Flask-Mail" mail.send(msg) return "Sent" if __name__ == '__main__': app.run(debug=True)
주의하세요, Gmail 서비스에서의 내장된 불안전한 기능은 이 로그인 시도를 차단할 수 있으며, 보안级别를 낮추어야 할 수 있습니다. 여러분의 Gmail 계정에 로그인하여 이 링크보안성을 줄이기 위해.