English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Envio de E-mail Flask

As aplicações web baseadas em Web geralmente precisam ter a capacidade de enviar e-mails para os usuários/Funcionalidade de envio de e-mails do cliente. Flask-A extensão Mail torna muito fácil configurar uma interface simples para qualquer servidor de e-mail.

Inicialmente, Flask-A extensão Mail pode ser instalada usando a ferramenta pip, conforme mostrado -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
pip install Flask-Mail

Então, é necessário configurar os valores dos seguintes parâmetros do aplicativo para o Flask-Mail.

NúmeroParâmetrosDescrição
1MAIL_SERVERNome do servidor de e-mail/Endereço IP
2MAIL_PORTPorta do servidor utilizado
3MAIL_USE_TLSAtivar/Desativar criptografia de camada de transferência de segurança
4MAIL_USE_SSLAtivar/Desativar criptografia de camada de segurança
5MAIL_DEBUGSuporte de depuração, o padrão é o estado de depuração do aplicativo Flask
6MAIL_USERNAMENome de usuário do remetente
7MAIL_PASSWORDSenha do remetente
8MAIL_DEFAULT_SENDERConfigurar o remetente padrão
9MAIL_MAX_EMAILSConfigurar o número máximo de e-mails a serem enviados
10MAIL_SUPPRESS_SENDSe app.testing for definido como true, as mensagens enviadas serão suprimidas
11MAIL_ASCII_ATTACHMENTSSe definido como true, o nome do arquivo anexado é convertido para ASCII

flask-O módulo mail contém as definições das seguintes classes importantes.

Classe Mail

Ele gerencia os requisitos de mensagem de e-mail. O construtor da classe Mail aceita a seguinte forma -

NúmeroMétodoDescrição
1send()Enviar o conteúdo do objeto Message
2connect()Abrir conexão com o host de e-mail
3send_message()Enviar o objeto mensagem

Classe Message

Ele encapsula um e-mail, o construtor da classe Message tem vários parâmetros -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
    responder-to, date, charset, extra_headers, mail_options, rcpt_options)

Método da classe Message

attach() - Adicione um anexo à mensagem. Este método aceita os seguintes parâmetros - filename - o nome do arquivo a ser anexado content_type - o tipo MIME do arquivo data - dados do arquivo original disposition - tratamento de conteúdo, se houver.

add_recipient() - Adicione outro destinatário à mensagem

No exemplo a seguir, o servidor SMTP do serviço Gmail do Google é usado como o Flask-O servidor de e-mail configurado no Mail.

Número1Passo - No código, importe do flask-O módulo mail importa as classes Mail e Message.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
from flask_mail import Mail, Message

Número2Passo - Em seguida, configure o Flask com base nas seguintes configurações-Mail.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 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

Número3Passo - Crie uma instância da classe Mail.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 2020-08-08
mail = Mail(app)

Número4Passo - na função Python mapeada pela regra de URL (/definindo o objeto Message no )

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 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 "Enviado"

Número5Passo - Todo o código está a seguir. Execute o seguinte script no Python Shell e acesse a URL: http://localhost:5000/.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: pt.oldtoolbag.com
# Data: 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 "Enviado"
 if __name__ == '__main__':
     app.run(debug=True)

Atenção, funções inseguras integradas no serviço do Gmail podem bloquear esta tentativa de login, pode ser necessário reduzir o nível de segurança. Acesse sua conta do Gmail e visite  Este LinkPara Reduzir a Segurança.