Bình - Thư
Một ứng dụng dựa trên web thường được yêu cầu có tính năng gửi thư tới người dùng / khách hàng. Flask-Mail tiện ích mở rộng giúp bạn dễ dàng thiết lập giao diện đơn giản với bất kỳ máy chủ email nào.
Lúc đầu, phần mở rộng Flask-Mail nên được cài đặt với sự trợ giúp của tiện ích pip.
pip install Flask-Mail
Sau đó, Flask-Mail cần được cấu hình bằng cách thiết lập các giá trị của các thông số ứng dụng sau.
Sr.No | Thông số & Mô tả |
---|---|
1 | MAIL_SERVER Tên / địa chỉ IP của máy chủ email |
2 | MAIL_PORT Số cổng của máy chủ được sử dụng |
3 | MAIL_USE_TLS Bật / tắt mã hóa Lớp bảo mật truyền tải |
4 | MAIL_USE_SSL Bật / tắt mã hóa Lớp cổng bảo mật |
5 | MAIL_DEBUG Hỗ trợ gỡ lỗi. Mặc định là trạng thái gỡ lỗi của ứng dụng Flask |
6 | MAIL_USERNAME Tên người dùng của người gửi |
7 | MAIL_PASSWORD mật khẩu của người gửi |
số 8 | MAIL_DEFAULT_SENDER đặt người gửi mặc định |
9 | MAIL_MAX_EMAILS Đặt số thư tối đa sẽ được gửi |
10 | MAIL_SUPPRESS_SEND Gửi bị chặn nếu app.testing được đặt thành true |
11 | MAIL_ASCII_ATTACHMENTS Nếu được đặt thành true, các tên tệp đính kèm được chuyển đổi thành ASCII |
Mô-đun flask-mail chứa các định nghĩa của các lớp quan trọng sau.
Lớp thư
Nó quản lý các yêu cầu gửi email. Hàm tạo lớp có dạng sau:
flask-mail.Mail(app = None)
Constructor lấy đối tượng ứng dụng Flask làm tham số.
Phương thức của lớp Thư
Sr.No | Phương pháp & Mô tả |
---|---|
1 | send() Gửi nội dung của đối tượng lớp Message |
2 | connect() Mở kết nối với máy chủ thư |
3 | send_message() Gửi đối tượng tin nhắn |
Lớp tin nhắn
Nó gói gọn một thông điệp email. Hàm tạo lớp thông báo có một số tham số:
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc,
reply-to, date, charset, extra_headers, mail_options, rcpt_options)
Phương thức lớp thông báo
attach()- thêm phần đính kèm vào tin nhắn. Phương thức này nhận các tham số sau:
filename - tên tệp cần đính kèm
content_type - Loại tệp MIME
data - dữ liệu tệp thô
disposition - bố trí nội dung, nếu có.
add_recipient() - thêm người nhận khác vào tin nhắn
Trong ví dụ sau, máy chủ SMTP của dịch vụ gmail của Google được sử dụng làm MAIL_SERVER cho cấu hình Flask-Mail.
Step 1 - Nhập lớp Thư và Thư từ mô-đun flask-mail trong mã.
from flask_mail import Mail, Message
Step 2 - Sau đó, Flask-Mail được cấu hình theo cài đặt sau.
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
Step 3 - Tạo một thể hiện của lớp Mail.
mail = Mail(app)
Step 4 - Thiết lập đối tượng Message trong một hàm Python được ánh xạ bởi quy tắc URL (‘/’).
@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"
Step 5- Toàn bộ mã được đưa ra bên dưới. Chạy tập lệnh sau trong Python Shell và truy cậphttp://localhost:5000/.
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)
Lưu ý rằng các tính năng không an toàn có sẵn trong dịch vụ Gmail có thể chặn nỗ lực đăng nhập này. Bạn có thể phải giảm mức độ bảo mật. Vui lòng đăng nhập vào tài khoản Gmail của bạn và truy cập liên kết này để giảm bảo mật.