This repository has been archived by the owner on Feb 18, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
enviar_emails.py
executable file
·138 lines (119 loc) · 5.44 KB
/
enviar_emails.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/env python
# coding: utf-8
# Esse script foi desenvolvido para facilitar o envio de e-mails às listas
# brasileiras de Python e é utilizado pela APyB para enviar convites aos
# eventos da comunidade, notificações etc.
# Obviamente, o e-mail do remetente precisa ser cadastrado nas listas para
# enviar e-mails a elas (a maioria fica no Google Groups).
# Em alguns casos (como no caso da PyBr[8]), o remetente utilizado foi
# <[email protected]>; já em outros e-mails pessoais são utilizados por
# quem quer fazer a notificação.
# Author: Álvaro Justen aka Turicas <http://turicas.info/>
# Licença: GPLv3
import getpass
import smtplib
import sys
import time
remetente = '"Seu nome" <[email protected]>'
msg = '''Subject: Assunto do e-mail
From: %s
To: {email}
Aqui vai a sua mensagem...
Você pode substituir com os "campos" de cada entrada na lista de e-mails.
Por exemplo: {gentilico}
Atenciosamente,
Diretoria da Associação Python Brasil''' % remetente
class EmailConnection(object):
def __init__(self, host, port, username, password):
self.username = username
self.password = password
self.host = host
self.port = port
def connect(self):
self.connection = smtplib.SMTP(self.host, self.port)
self.connection.ehlo()
self.connection.starttls()
self.connection.ehlo()
self.connection.login(self.username, self.password)
def send_mail(self, from_, to, message):
return self.connection.sendmail(from_, to, message)
def close(self):
self.connection.close()
if __name__ == '__main__':
host = raw_input('Digite o servidor de e-mails (exemplo: smtp.gmail.com): ')
port = raw_input('Digite a porta (exemplo: 587): ')
username = raw_input('Digite seu login (geralmente o email) no servidor: ')
password = getpass.getpass('Digite a senha do e-mail: ')
email_connection = EmailConnection(host, port, username, password)
email_connection.connect()
i = 0
emails = [
{'gentilico': 'cariocas e fluminenses',
'email': '[email protected]'},
{'gentilico': 'catarinenses',
'email': '[email protected]'},
{'gentilico': 'alagoanos e alagoanas',
'email': '[email protected]'},
{'gentilico': 'alagoanos e alagoanas',
'email': '[email protected]'},
{'gentilico': 'amazonenses',
'email': '[email protected]'},
{'gentilico': 'baianos e baianas',
'email': '[email protected]'},
{'gentilico': 'brasilienses',
'email': '[email protected]'},
{'gentilico': 'capixabas',
'email': '[email protected]'},
{'gentilico': 'paraibanos e paraibanas',
'email': '[email protected]'},
{'gentilico': 'paranaenses',
'email': '[email protected]'},
{'gentilico': 'potiguares',
'email': '[email protected]'},
{'gentilico': 'gaúchos e gaúchas',
'email': '[email protected]'},
{'gentilico': 'gaúchos e gaúchas',
'email': '[email protected]'},
{'gentilico': 'paulistas',
'email': '[email protected]'},
{'gentilico': 'mineiros e mineiras',
'email': '[email protected]'},
{'gentilico': 'cearenses',
'email': '[email protected]'},
{'gentilico': 'pernambucanos e pernambucanas',
'email': '[email protected]'},
{'gentilico': 'goianos e goianas',
'email': '[email protected]'},
{'gentilico': 'rondonianos e rondonianas',
'email': '[email protected]'},
{'gentilico': 'ribeirão-pretanos e ribeirão-pretanas',
'email': '[email protected]'},
{'gentilico': 'maranhenses',
'email': '[email protected]'},
{'gentilico': 'brasileiros e brasileiras',
'email': '[email protected]'},
{'gentilico': 'associados e associadas da APyB',
'email': '[email protected]'},
{'gentilico': 'científicos',
'email': '[email protected]'},
{'gentilico': 'usuários e usuárias de web2py',
'email': '[email protected]'},
{'gentilico': 'da APyB-ConDir',
'email': '[email protected]'},
{'gentilico': 'piauienses',
'email': '[email protected]'},
{'gentilico': 'tocantinenses',
'email': '[email protected]'},
]
for row in emails:
mensagem = msg
for key, value in row.iteritems():
mensagem = mensagem.replace('{%s}' % key, value)
i += 1
sys.stdout.write('Enviando email %02d para <%s> ... ' % \
(i, row['email']))
response = email_connection.send_mail(remetente, email, mensagem)
print('OK' if response == {} else response)
time.sleep(0.1) # alguns servidores de e-mail fecham a conexão quando a
# taxa de e-mails enviados é grande
email_connection.close()