Frasco - Correio
Freqüentemente, é necessário que um aplicativo baseado na web tenha um recurso de envio de correio aos usuários / clientes. Flask-Mail extensão torna muito fácil configurar uma interface simples com qualquer servidor de e-mail.
A princípio, a extensão Flask-Mail deve ser instalada com a ajuda do utilitário pip.
pip install Flask-Mail
Então, o Flask-Mail precisa ser configurado, definindo os valores dos seguintes parâmetros do aplicativo.
Sr. Não | Parâmetros e descrição |
---|---|
1 | MAIL_SERVER Nome / endereço IP do servidor de e-mail |
2 | MAIL_PORT Número da porta do servidor usado |
3 | MAIL_USE_TLS Ativar / desativar criptografia de camada de segurança de transporte |
4 | MAIL_USE_SSL Ativar / desativar criptografia Secure Sockets Layer |
5 | MAIL_DEBUG Suporte para depuração. O padrão é o status de depuração do aplicativo Flask |
6 | MAIL_USERNAME Nome de usuário do remetente |
7 | MAIL_PASSWORD senha do remetente |
8 | MAIL_DEFAULT_SENDER define o remetente padrão |
9 | MAIL_MAX_EMAILS Define o máximo de e-mails a serem enviados |
10 | MAIL_SUPPRESS_SEND Envio suprimido se app.testing definido como verdadeiro |
11 | MAIL_ASCII_ATTACHMENTS Se definido como verdadeiro, os nomes de arquivos anexados são convertidos para ASCII |
O módulo flask-mail contém definições das seguintes classes importantes.
Aula de correio
Ele gerencia os requisitos de mensagens de e-mail. O construtor da classe assume a seguinte forma -
flask-mail.Mail(app = None)
O Construtor usa o objeto de aplicativo Flask como parâmetro.
Métodos de aula de correio
Sr. Não | Métodos e Descrição |
---|---|
1 | send() Envia o conteúdo do objeto da classe Message |
2 | connect() Abre conexão com o host de e-mail |
3 | send_message() Envia objeto de mensagem |
Classe de mensagem
Ele encapsula uma mensagem de e-mail. O construtor da classe de mensagem tem vários parâmetros -
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc,
reply-to, date, charset, extra_headers, mail_options, rcpt_options)
Métodos de classe de mensagem
attach()- adiciona um anexo à mensagem. Este método leva os seguintes parâmetros -
filename - nome do arquivo a ser anexado
content_type - Tipo de arquivo MIME
data - dados brutos do arquivo
disposition - disposição do conteúdo, se houver.
add_recipient() - adiciona outro destinatário à mensagem
No exemplo a seguir, o servidor SMTP do serviço gmail do Google é usado como MAIL_SERVER para a configuração do Flask-Mail.
Step 1 - Importar as classes Mail e Message do módulo flask-mail no código.
from flask_mail import Mail, Message
Step 2 - Então Flask-Mail é configurado de acordo com as configurações a seguir.
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 - Crie uma instância da classe Mail.
mail = Mail(app)
Step 4 - Configurar um objeto Message em uma função Python mapeada por regra de 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- O código completo é fornecido abaixo. Execute o seguinte script no Python Shell e visitehttp://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)
Observe que os recursos de insegurança integrados no serviço do Gmail podem bloquear essa tentativa de login. Você pode ter que diminuir o nível de segurança. Faça login em sua conta do Gmail e visite este link para diminuir a segurança.