Часто требуется, чтобы веб-приложение имело функцию отправки почты пользователям / клиентам. Расширение Flask-Mail позволяет легко настроить простой интерфейс с любым почтовым сервером.
Сначала расширение Flask-Mail должно быть установлено с помощью утилиты pip.
pip install Flask-Mail
Затем необходимо настроить Flask-Mail, установив значения следующих параметров приложения.
Sr.No | Параметры и описание |
---|---|
1 |
ПОЧТОВЫЙ СЕРВЕР Имя / IP-адрес почтового сервера |
2 |
MAIL_PORT Номер порта используемого сервера |
3 |
MAIL_USE_TLS Включить / отключить шифрование транспортного уровня безопасности |
4 |
MAIL_USE_SSL Включить / отключить шифрование Secure Sockets Layer |
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 |
ПОЧТОВЫЙ СЕРВЕР
Имя / IP-адрес почтового сервера
MAIL_PORT
Номер порта используемого сервера
MAIL_USE_TLS
Включить / отключить шифрование транспортного уровня безопасности
MAIL_USE_SSL
Включить / отключить шифрование Secure Sockets Layer
MAIL_DEBUG
Поддержка отладки. По умолчанию используется состояние отладки приложения Flask.
MAIL_USERNAME
Имя пользователя отправителя
MAIL_PASSWORD
пароль отправителя
MAIL_DEFAULT_SENDER
устанавливает отправителя по умолчанию
MAIL_MAX_EMAILS
Устанавливает максимальное количество отправляемых писем
MAIL_SUPPRESS_SEND
Отправка подавлена, если app.testing имеет значение true
MAIL_ASCII_ATTACHMENTS
Если установлено значение true, вложенные имена файлов преобразуются в ASCII
Модуль флеш-почты содержит определения следующих важных классов.
Почтовый класс
Он управляет требованиями к электронной почте. Конструктор класса принимает следующую форму —
flask-mail.Mail(app = None)
Конструктор принимает объект приложения Flask в качестве параметра.
Методы класса Mail
Sr.No | Методы и описание |
---|---|
1 |
Отправить() Посылает содержимое объекта класса Message |
2 |
подключения () Открывает соединение с почтовым хостом |
3 |
Отправить сообщение() Отправляет объект сообщения |
Отправить()
Посылает содержимое объекта класса Message
подключения ()
Открывает соединение с почтовым хостом
Отправить сообщение()
Отправляет объект сообщения
Класс сообщения
Он инкапсулирует сообщение электронной почты. Конструктор класса сообщений имеет несколько параметров —
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
-
данные — необработанные данные файла
-
распоряжение — содержание распоряжения, если таковое имеется.
filename — имя файла для прикрепления
content_type — тип файла MIME
данные — необработанные данные файла
распоряжение — содержание распоряжения, если таковое имеется.
add_recipient () — добавляет другого получателя в сообщение
В следующем примере SMTP-сервер службы gmail Google используется как MAIL_SERVER для настройки Flask-Mail.
Шаг 1 — Импорт класса Mail и Message из модуля флеш-почты в коде.
from flask_mail import Mail, Message
Шаг 2 — Затем Flask-Mail настраивается согласно следующим настройкам.
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.
mail = Mail(app)
Шаг 4 — Установите объект Message в функции Python, отображаемой по правилу 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"
Шаг 5 — Весь код приведен ниже. Запустите следующий скрипт в Python Shell и посетите http: // 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)
Обратите внимание, что встроенные функции безопасности в службе Gmail могут блокировать эту попытку входа в систему. Возможно, вам придется снизить уровень безопасности. Войдите в свою учетную запись Gmail и перейдите по этой ссылке, чтобы снизить уровень безопасности.