Envie e-mail em Python

Najwa Riyaz 12 outubro 2021
Envie e-mail em Python

Para enviar um e-mail usando Python, use as seguintes funções da biblioteca smtplib.

  • SMTP(SMTP_SERVER, SMTP_PORT) - cria uma sessão SMTP de acordo com o servidor SMTP e os detalhes da porta SMTP.
  • starttls() - para iniciar o TLS para a configuração de segurança.
  • login(SMTP_USERNAME, SMTP_PASSWORD) - para fornecer os detalhes de autenticação do remetente do e-mail.
  • sendmail(EMAIL_FROM, EMAIL_TO, the_message) - para enviar a mensagem do Remetente ao Destinatário.
  • quit() para sair da Sessão SMTP.

Aqui está um exemplo que demonstra o envio de e-mail por meio do servidor SMTP do Gmail.

import smtplib

SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"

s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()

A saída pode ser a seguinte de acordo com a conexão construída naquele ponto em seu sistema -

(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")

Como resultado, o e-mail é enviado. O receptor recebe a mensagem com sucesso.

Observação:

  • No caso do Gmail, forneça os seguintes detalhes SMTP:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587

Além disso, a configuração a seguir precisa ser ativada no Gmail antes de executar o código.

https://myaccount.google.com/lesssecureapps
  • No caso do Yahoo Mail, forneça os seguintes detalhes SMTP:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587

Além disso, gere uma senha de aplicativo do Yahoo antes de executar o código. Verifique o link abaixo.

https://help.yahoo.com/kb/generate-separate-password-sln15241.html

  • Da mesma forma, se desejar utilizar qualquer outro provedor de correio, utilize os respectivos dados e pré-requisitos do servidor SMTP.