Учебники

Колба – почта

Часто требуется, чтобы веб-приложение имело функцию отправки почты пользователям / клиентам. Расширение 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'] = 'yourId@gmail.com'
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 = 'yourId@gmail.com', recipients = ['id1@gmail.com'])
   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'] = 'yourId@gmail.com'
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 = 'yourId@gmail.com', recipients = ['id1@gmail.com'])
   msg.body = "Hello Flask message sent from Flask-Mail"
   mail.send(msg)
   return "Sent"

if __name__ == '__main__':
   app.run(debug = True)

Обратите внимание, что встроенные функции безопасности в службе Gmail могут блокировать эту попытку входа в систему. Возможно, вам придется снизить уровень безопасности. Войдите в свою учетную запись Gmail и перейдите по этой ссылке, чтобы снизить уровень безопасности.