-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
71 lines (52 loc) · 1.84 KB
/
main.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
import imaplib
import email
from win10toast import ToastNotifier
import json
#import config
# config = {
# 'SERVER': 'imap.gmail.com',
# 'PORT': 993,
# 'USERNAME': 'seu_email@gmail.com',
# 'PASSWORD': 'sua_senha'
# }
#Configurações através de um arquivo na pasta do projeto
enviro = 'dev_env.json'
with open(enviro, 'r') as f:
config = json.load(f)
mail = imaplib.IMAP4_SSL(config['SERVER'], config['PORT'])
mail.login(config['USERNAME'], config['PASSWORD'])
mail.select('inbox')
status, data = mail.search(None, 'UNSEEN')
notifier = ToastNotifier()
keywords = ['git', 'github', 'commit']
emails = {}
year = 2022
search_query = f'SINCE "01-JAN-{year}" BEFORE "01-JAN-{year + 1}"'
status, data = mail.search(None, search_query)
qnt_x = 0
qnt_x1 = 0
for num in data[0].split():
status, data = mail.fetch(num, '(RFC822)')
email_msg = email.message_from_bytes(data[0][1])
sender = email_msg['From']
subject = email_msg['Subject']
body = email_msg.get_payload()
date = email.utils.parsedate_to_datetime(email_msg['Date'])
print('Procurando no ano de {}, {} de {} encontrados'.format(date.year ,qnt_x, qnt_x1))
#print('Status: {} por {}'.format(status, qnt_x))
#if date.year == year:
for keyword in keywords:
qnt_x +=1
if keyword in subject.lower():
emails[num] = {'sender': sender, 'subject': subject, 'body': body}
print(f'Palavra-chave "{keyword}" encontrada no e-mail {num}!')
qnt_x1 +=1
for email in emails.values():
print('Remetente:', email['sender'])
print('Assunto:', email['subject'])
print('Corpo:', email['body'])
notifier.show_toast('Novo e-mail',
'De: ' + email['sender'] + '\nAssunto: ' + email['subject'],
duration=5)
mail.close()
mail.logout()