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.