Skip to content

Commit f65f0e2

Browse files
authored
Create envio-automático-emails.md
1 parent 4b6f2e6 commit f65f0e2

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed

envio-automático-emails.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
O envio automático de emails em Python pode ser feito com a biblioteca `smtplib`, que facilita a comunicação com servidores SMTP (Simple Mail Transfer Protocol). Para enviar emails automáticos, vamos configurar um servidor SMTP, criar uma mensagem de email e usar as credenciais da conta de envio (como Gmail ou Outlook). Se você quiser anexar arquivos, a biblioteca `email` oferece ferramentas para formatar a mensagem e adicionar anexos.
2+
3+
Aqui está um exemplo básico de envio de email usando o Gmail, que inclui configurações e código comentado.
4+
5+
---
6+
7+
### Passo 1: Configuração de uma Conta de Envio (Gmail)
8+
9+
1. **Permitir Aplicativos Menos Seguros**:
10+
Para contas do Gmail, acesse [Acesso a apps menos seguros](https://myaccount.google.com/lesssecureapps) e ative-o. O Gmail restringe aplicativos "menos seguros" por padrão.
11+
12+
2. **Gerar Senha de Aplicativo**:
13+
Para maior segurança, use uma senha específica para aplicativos. No painel de segurança da conta do Google, gere uma senha de aplicativo para enviar emails via Python.
14+
15+
---
16+
17+
### Exemplo Básico: Envio de Email Simples
18+
19+
```python
20+
import smtplib
21+
from email.mime.text import MIMEText
22+
from email.mime.multipart import MIMEMultipart
23+
24+
# Configurações do servidor SMTP
25+
smtp_server = "smtp.gmail.com"
26+
smtp_port = 587
27+
email_sender = "seu_email@gmail.com"
28+
email_password = "sua_senha"
29+
30+
# Configurações do destinatário e da mensagem
31+
email_recipient = "destinatario@gmail.com"
32+
subject = "Email Automático com Python"
33+
body = "Este é um email automático enviado por um script em Python."
34+
35+
# Cria a mensagem
36+
msg = MIMEMultipart()
37+
msg["From"] = email_sender
38+
msg["To"] = email_recipient
39+
msg["Subject"] = subject
40+
msg.attach(MIMEText(body, "plain"))
41+
42+
try:
43+
# Conecta ao servidor e envia o email
44+
server = smtplib.SMTP(smtp_server, smtp_port)
45+
server.starttls() # Segurança TLS
46+
server.login(email_sender, email_password) # Login
47+
server.sendmail(email_sender, email_recipient, msg.as_string())
48+
print("Email enviado com sucesso!")
49+
except Exception as e:
50+
print(f"Erro ao enviar o email: {e}")
51+
finally:
52+
server.quit()
53+
```
54+
55+
### Explicação do Código:
56+
57+
1. **Configuração SMTP**: Define o servidor SMTP (Gmail usa `smtp.gmail.com` na porta `587` para conexão TLS).
58+
2. **Mensagem**: Criamos uma mensagem usando `MIMEMultipart` para facilitar o uso de múltiplas partes, como corpo de texto e anexos.
59+
3. **Envio do Email**:
60+
- Conectamos ao servidor SMTP usando o protocolo TLS.
61+
- Fazemos login usando o email e a senha do remetente.
62+
- Enviamos o email com `sendmail`.
63+
4. **Fechamento da Conexão**: Com o método `server.quit()`, encerramos a conexão com o servidor SMTP.
64+
65+
---
66+
67+
### Exemplo com Anexo
68+
69+
Para adicionar um anexo, podemos usar `MIMEBase` e `encoders`.
70+
71+
```python
72+
from email.mime.base import MIMEBase
73+
from email import encoders
74+
import os
75+
76+
# Definir o caminho do arquivo que deseja anexar
77+
file_path = "caminho_do_arquivo/a_anexar.txt"
78+
79+
# Lê o arquivo e cria uma parte MIME para o anexo
80+
attachment = MIMEBase("application", "octet-stream")
81+
with open(file_path, "rb") as f:
82+
attachment.set_payload(f.read())
83+
84+
# Codifica em Base64
85+
encoders.encode_base64(attachment)
86+
attachment.add_header(
87+
"Content-Disposition",
88+
f"attachment; filename= {os.path.basename(file_path)}",
89+
)
90+
91+
# Anexa o arquivo à mensagem
92+
msg.attach(attachment)
93+
```
94+
95+
Basta adicionar o código acima após a criação da mensagem para incluir o anexo.
96+
97+
---
98+
99+
### Notas Finais
100+
101+
1. **Outros Servidores SMTP**: Se você estiver usando outro serviço de email (como Outlook, Yahoo), use o servidor e a porta correspondentes.
102+
2. **Tratamento de Erros**: O exemplo inclui um bloco `try-except` para capturar e exibir erros durante o envio.
103+
3. **Envio de Vários Emails**: Para enviar a vários destinatários, você pode adicionar uma lista de emails em `email_recipient` e iterar sobre ela, ou passar uma string com emails separados por vírgula.
104+
105+
Esses exemplos cobrem os princípios básicos do envio automático de emails em Python.

0 commit comments

Comments
 (0)