· 4 years ago · Apr 30, 2021, 03:04 PM
1from email_validator import validate_email, EmailNotValidError
2import quickemailverification
3from tkinter import *
4
5
6
7
8def delete_dublicates(source_list):
9 clean_list = list(set(source_list))
10 return clean_list
11
12
13
14
15def main(event):
16
17 try:
18 with open('base.txt', 'r') as base:
19 all_emails = []
20 c = 0
21 for line in base:
22 c += 1
23 email = line.replace('\n', '').replace(' ', '')
24 try:
25 valid = validate_email(email)
26 email = valid.ascii_email
27 all_emails.append(email)
28 except EmailNotValidError:
29 pass
30
31 unique_emails = delete_dublicates(all_emails)
32
33 existing_emails = []
34 allowed_domains = ['mail.ru', 'rambler.ru', 'inbox.ru', 'list.ru', 'bk.ru', 'internet.ru', 'yandex.ru', 'yandex.by', 'gmail.com', 'lenta.ru', 'rambler.ua', 'ro.ru', 'autorambler.ru', 'myrambler.ru']
35 for i in unique_emails:
36 for z in allowed_domains:
37 if z in i:
38 existing_emails.append(i)
39
40 with open('good.txt', 'w') as good_emails_base:
41 for i in existing_emails:
42 good_emails_base.write(i + '\n')
43 status['text'] = 'Готово!'
44
45 except FileNotFoundError:
46 status['text'] = '''Файл base.txt не найден.
47Поместите базу в одну папку с программой и назовите base.txt'''
48
49
50if __name__ == '__main__':
51 root = Tk()
52
53 api_key_label = Label(font="Arial 12")
54 about_program = Label(text='''Программа берёт базу email из base.txt и отсеивает ошибочные адреса и дубликаты.
55"Чистая" база записывается в good.txt.''', font="Arial 18")
56 but = Button(text="Начать сортировку")
57 status = Label(bg='black', fg='green', text='Ожидание запуска', font="Arial 12")
58 developer = Label(text="Написать разработчику: t.me/yatkau_developer_bot")
59
60 but.bind('<Button-1>', main)
61 api_key_label.pack()
62 about_program.pack()
63 developer.pack()
64 status.pack()
65 but.pack()
66
67 root.mainloop()
68