Flask Mail

Neste artigo, veremos mais de perto o Flask Mail e exploraremos seus recursos, benefícios e como usá-lo em seu aplicativo da web .

Se você precisar incluir um recurso para enviar e-mails para usuários ou clientes em seu aplicativo da web, descobrirá que a extensão Flask Mail pode ajudá-lo a configurar uma interface simples com qualquer servidor de e-mail. Essa extensão agiliza o processo e torna muito mais fácil integrar a funcionalidade de e-mail em seu aplicativo da web.

Para começar a usar a extensão Flask Mail, você precisará instalá-la usando o utilitário pip. Este é o primeiro passo para integrar a funcionalidade de e-mail em seu aplicativo web Flask.

pip install Flask-Mail

Depois de instalar a extensão Flask Mail, você precisará configurá-la definindo os valores de determinados parâmetros do aplicativo. Esta etapa é necessária para garantir que o Flask Mail esteja configurado corretamente e possa funcionar corretamente em seu aplicativo da web.

 

Parâmetros Visão geral
SERVIDOR DE E-MAIL O nome do host ou endereço IP do servidor de e-mail que você deseja usar para enviar e-mails.
MAIL_PORT O número da porta na qual o servidor de e-mail está atendendo. A porta padrão para SMTP é 25, mas pode ser necessário especificar uma porta diferente dependendo da configuração do servidor de e-mail.
MAIL_USE_TLS Este parâmetro especifica se deve usar o Transport Layer Security (TLS) para comunicação segura com o servidor de email. Defina-o como True se o seu servidor exigir uma conexão segura.
MAIL_USE_SSL Semelhante a MAIL_USE_TLS, este parâmetro indica se deve usar SSL (Secure Sockets Layer) para comunicação segura. Defina-o como True se o seu servidor exigir SSL.
MAIL_USERNAME O nome de usuário ou endereço de e-mail usado para autenticação com o servidor de e-mail.
MAIL_PASSWORD A senha da conta de e-mail usada para autenticação.
MAIL_DEFAULT_SENDER O endereço de e-mail do remetente padrão usado ao enviar e-mails. Esse valor é usado se você não especificar explicitamente um remetente no método send().
MAIL_MAX_EMAILS O número máximo de e-mails a serem enviados em uma única conexão. Se você exceder esse limite, o Flask Mail se reconectará automaticamente ao servidor de e-mail.
MAIL_DEBUG Este parâmetro habilita ou desabilita o modo de depuração para Flask Mail. Quando definido como True, ele imprime informações detalhadas de depuração durante o processo de envio de e-mail.

 

Dentro do módulo flask mail, você encontrará definições para várias classes cruciais que desempenham um papel importante no funcionamento da extensão Flask Mail.



classe de correio

O objetivo desta classe é lidar com as necessidades de mensagens de e-mail e seu construtor é estruturado da seguinte maneira:

flask-mail.Mail(app = None)

Como parâmetro para o construtor, o objeto de aplicativo Flask é obrigatório. O objeto acima é usado pelo construtor para estabelecer uma conexão entre Flask e a extensão Flask Mail.
Métodos da classe Mail

Métodos Visão geral
enviar() Envia o conteúdo do objeto da classe Message
conectar() Abre a conexão com o host de e-mail
enviar mensagem() Envia objeto de mensagem

Classe de mensagem

Essa classe é responsável por encapsular uma mensagem de e-mail e o construtor da classe Message inclui vários parâmetros.

Esses parâmetros determinam os vários atributos e propriedades da mensagem de e-mail.

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(): Este método é utilizado para incluir um anexo na mensagem de e-mail, e requer os seguintes parâmetros:

  • filename: nome do arquivo a ser anexado
  • content_type: tipo de arquivo MIME
  • dados: dados brutos do arquivo
  • disposição: disposição do conteúdo, se houver.

add_recipient(): Esta função é usada para adicionar um destinatário adicional à mensagem de e-mail.

A configuração do Flask Mail no exemplo abaixo utiliza o servidor SMTP do serviço Gmail do Google como MAIL_SERVER.

Em seu código, certifique-se de incluir as importações necessárias para as classes Mail e Message do módulo flask mail.

from flask_mail import Mail, Message

Em seguida, o Flask-Mail é configurado usando as configurações fornecidas abaixo. Essas configurações determinam como o Flask-Mail funcionará em seu aplicativo da web.

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

Faça uma instância da classe Mail.

mail = Mail(app)

Dentro de uma função Python que é mapeada para uma regra de URL ('/'), você deve criar um objeto Message para configurar os detalhes da mensagem de e-mail que deseja enviar usando o Flask Mail.

@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"

Abaixo, você pode encontrar o código completo para o aplicativo web Flask que incorpora o Flask Mail. Para executar este script, execute-o no Python Shell e visite http://localhost:5000/ em seu navegador da web.

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('Greetings', sender = '[email protected]', recipients = ['[email protected]'])

   msg.body = "Hey developer this is a Flask message sent from Flask-Mail"

   mail.send(msg)

   return "Sent"

if __name__ == '__main__':

   app.run(debug = True)

É importante ter em mente que as medidas de segurança fornecidas pelo serviço Gmail podem impedir a tentativa de login descrita acima. Para contornar esse problema, pode ser necessário diminuir o nível de segurança. Você pode fazer isso entrando em sua conta do Gmail e seguindo este link para fazer os ajustes necessários.

Exemplo de Explicação

No exemplo acima, estamos criando um aplicativo Flask que utiliza a extensão Flask Mail para enviar uma mensagem de e-mail. Começamos importando os módulos necessários – Flask e Flask Mail.

Em seguida, criamos uma instância do aplicativo Flask e instanciamos a classe Mail usando-a. Em seguida, definimos as opções de configuração do servidor de e-mail que queremos usar, neste caso, o Gmail.

Depois disso, definimos uma rota para a aplicação usando o decorador @app.route(). A rota que definimos é a rota raiz '/', o que significa que será a página padrão exibida quando um usuário navegar em nosso aplicativo.

Dentro da função route, criamos uma instância da classe Message, que é utilizada para encapsular a mensagem de e-mail que queremos enviar. Especificamos o remetente, o destinatário e o assunto da mensagem. Também definimos o corpo da mensagem com o atributo msg.body.

Finalmente, usamos o método mail.send() para enviar a mensagem de e-mail. Se a mensagem for enviada com sucesso, a mensagem 'Enviada' será retornada ao navegador do cliente. Se houver erros, eles serão exibidos na janela do terminal onde iniciamos o aplicativo.


Benefícios do Flask Mail

O Flask-Mail fornece uma maneira simples de definir as configurações de e-mail. Você pode especificar facilmente o servidor de e-mail, número da porta, nome de usuário e senha em seu aplicativo Flask.

O Flask-Mail permite criar mensagens de e-mail personalizadas que podem incluir conteúdo HTML, imagens e anexos.

O Flask-Mail fornece suporte para enfileiramento de e-mails, o que permite enviar e-mails de forma assíncrona e evitar o bloqueio do encadeamento principal do aplicativo.

O Flask-Mail oferece suporte a vários back-ends de e-mail, como SMTP, Gmail e SendGrid. Isso significa que você pode usar seu provedor de serviços de e-mail preferido sem alterar seu código.

O Flask-Mail fornece tratamento de erros integrado para problemas comuns relacionados a e-mail, como falhas de conexão, erros de autenticação e falhas no envio de mensagens. Isso ajuda a melhorar a confiabilidade do seu processo de envio de e-mail.

O Flask-Mail foi projetado para integrar-se perfeitamente ao Flask, facilitando o envio de e-mails de seu aplicativo Flask.


Conclusão

A extensão Flask Mail é uma ferramenta valiosa para qualquer aplicativo da web que exija a funcionalidade de e-mail. Com seu processo de configuração simples, opções personalizáveis ​​e capacidade de lidar com vários servidores de e-mail, ele pode simplificar seus requisitos de mensagens de e-mail. Ao usar o Flask Mail, você pode enviar e-mails facilmente para seus usuários e clientes com apenas algumas linhas de código. Portanto, se você está procurando uma maneira eficiente e fácil de usar para gerenciar a funcionalidade de e-mail em seu aplicativo Flask, definitivamente vale a pena considerar o Flask Mail!

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone