Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Nesse artigo vamos ensinar de uma forma prática e fácil de como fazer envio de e-mail com Python, sem utilizar bibliotecas de terceiros, essa solução pode ser incorporada a um script ou até API escrita nessa linguagem.
Para fazer essa implementação vamos fazer o uso de duas bibliotecas smtplib e a biblioteca email, elas vão facilitar nossa implementação já que entregam funções especificas para esse uso.
Para realizar essa implementação você precisará do ambiente Python devidamente instalado, pois vamos fazer uso das bibliotecas que já fazem parte da sua biblioteca padrão. Para usá-las precisamos apenas importar as classes especificas a partir da biblioteca email.mime, segue abaixo um exemplo de como importar:
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
PythonSerá necessário também que você possua um servidor SMTP para conseguir fazer o envio de e-mails, para o nosso exemplo você pode usar um serviço de e-mail como o Gmail por exemplo.
Importante salientar que para envio de grandes quantidades de e-mail talvez será necessário você contratar um serviço especifico para isso um AWS SES por exemplo.
Em ambos os casos você precisará do endereço smtp do sevidor de email a porta, e um usuário e senha válidos.
Para testes você pode utilizar uma conta no Gmail por exemplo:
Aqui estão as configurações básicas para o servidor SMTP do Google:
Para usar o Gmail você precisará fazer uma configuração na sua conta para permitir o acesso de aplicativos menos seguros, mas atenção é interessante qua após os testes você remova essa permissão por questões de segurança do seu e-mail.
O código abaixo representa uma implementação simples do envio:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# Configurações do servidor SMTP
smtp_server = 'smtp.seu-servidor-smtp.com'
smtp_port = 587 # Porta SMTP (pode variar dependendo do provedor)
smtp_username = 'seu-email@dominio.com'
smtp_password = 'sua-senha'
# Crie uma mensagem MIMEMultipart
msg = MIMEMultipart()
msg['From'] = 'seu-email@dominio.com'
msg['To'] = 'destinatario@dominio.com'
msg['Subject'] = 'Assunto do e-mail'
# Corpo do e-mail
body = 'Este é o corpo do e-mail.'
msg.attach(MIMEText(body, 'plain'))
# Conecte-se ao servidor SMTP e envie o e-mail
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(smtp_username, 'destinatario@dominio.com', msg.as_string())
server.quit()
print('E-mail enviado com sucesso')
except Exception as e:
print(f'Erro ao enviar o e-mail: {str(e)}')
PythonÉ importante observar que você deve substituir as informações de conexão do seu servidor SMTP para que o envio seja bem sucedido.
Agora que temos tudo implementado e as informações devidamente ajustadas, podemos executar o código e verificar o envio de fato.
Esse processo pode ser feito via linha de comando, basta abrir o terminal no diretório do seu arquivo e executar o comando abaixo substituindo meu_script.py pelo nome do arquivo que você criou.
python meu_script.py
TerminalEm caso de sucesso será impresso no terminal a frase “E-mail enviado com sucesso”, já em caso de erro deve ser impresso “Erro ao enviar o e-mail” com algumas informações do porque ocorreu o erro.
Em caso de erro, verifica atentamente todas as informações do servidor que você forneceu e se ele está habilitado para envio de e-mail por terceiros.
Como vimos enviar e-mails através da linguagem Python é relativamente simples, e como mencionado anteriormente esse código pode ser incorporado a qualquer solução usando essa linguagem. Um ponto interessante seria encapsular esse código em uma função que pode ser chamado em outros pontos do código abstraindo assim o seu uso e tornando o uso mais escalável principalmente segregando responsabilidades.