-
Notifications
You must be signed in to change notification settings - Fork 0
/
exploit_correo.py
executable file
·504 lines (447 loc) · 22.4 KB
/
exploit_correo.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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
from PyQt5.QtGui import QColor,QPalette,QFont,QTextOption,QTextDocument,QTextCursor
from PyQt5.QtWidgets import QApplication,QWidget,QLineEdit,QLabel,QPushButton,QHBoxLayout,QVBoxLayout,QCheckBox,QComboBox,QTextEdit
from PyQt5.QtCore import Qt,pyqtSignal,QObject,QThread,QRunnable
from PyQt5.Qt import QMetaType
import sys
import threading
import time
import datetime
from colorama import Fore, Back, Style
import nmap
import os
import psutil
class Worker(QObject,QRunnable): #Aqui hacemos herencia de clases que vienen ya integradas en pyqt5
finished = pyqtSignal()
progressed = pyqtSignal()
finished_lista=[pyqtSignal()]
siguiente = pyqtSignal()
aux=0
#metodo constructor
"""
Todo lo que dice self esa palabra hace referencia ala propia clase en este caso hace referencia a la clase Worjer
1 contador_hilo que sirve para contar los hilos que se vayan generando por defecto el primer hilo esta inicializado en 1
"""
def __init__(self,contador_hilo,textarea_proceso,label_proceso_verificacion=None,label_proceso_verificacion2=None,parent=None):
self.contador_hilo=contador_hilo
self.textarea_proceso=textarea_proceso
self.label_proceso_verificacion=label_proceso_verificacion
self.label_proceso_verificacion2=label_proceso_verificacion2
super().__init__(parent)
# en esta parte llamamo al constructor padre es decir llamamo al __init__ pero no de esta clase
#si no de la clase QObject
def run(self):
print("CONTADOR HILO WORKER"+str(self.contador_hilo))
print(str(QThread.currentThread().objectName())) #metodo run es un metodo especial que nos ayuda a ejecutar varios hilos al mismo tiempo
if self.contador_hilo == 1: #verificamos que el contador sea igual a 1 si es asi ejecuta lo que se encuantra adentro
#por defecto los elementos textedit de pyqt5 no puede extraerse directamente su contenido
#por lo cual invocamos al metodo textCursor
self.contador_hilo=self.contador_hilo+1 #incrementamos el valor de la variable contador_hilo
self.textarea_proceso.append("INICIANDO HILO DE EJECUCION......") #agrega el texto al textedit
#en este caso de 1 en 1 hasta llegar a 19
for _i in range(0,100): #sentencia for sirve para incrementar la variable puedes ver que la variavle cone el nombre _I incrementa
print("MITIENDO--->"+str(_i+1))
time.sleep(0.1)
self.label_proceso_verificacion.setText(self.label_proceso_verificacion.text()+"x") #asignamos texto al lebel con el nombre
#proceso_verificacion la letra x se va ir añadiendo conforme la variable _I vaya incrementandose
#aignamos un tiempo de espara po cada iteracion del bucle for
self.finished.emit()
elif self.contador_hilo==2:
self.contador_hilo=self.contador_hilo+1
self.textarea_proceso.append("VERIFICANDO TU EMAIL Y PASSOWRD......")
for _i in range(0,100): #sentencia for sirve para incrementar la variable puedes ver que la variavle cone el nombre _I incrementa
print("MITIENDO___2--->"+str(_i+1))
time.sleep(0.1)
self.label_proceso_verificacion2.setText(self.label_proceso_verificacion2.text()+"x") #asignamos texto al lebel con el nombre
self.finished.emit()
elif self.contador_hilo==3:
time.sleep(0.2)
self.textarea_proceso.append("VERIFICANDO QUE EL CORREO SOLO TENGA UNA ARROBA.....")
self.contador_hilo=self.contador_hilo+1
class main_principal(QWidget):
fecha_actual = datetime.datetime.now() # datetime es la libreria que nos ayuda con las fechas horas minutos y hsta segundos
#en este caso nos referimos a que nos de la fecha actual
contador_hilo=1
cursor=None
lista_hilos=[]
def banner_anonymous(self):
#banner un bannner es solo un mensaje de texto
#el \32 es para indicarle que queremos un espacio en blanco
#puedes ver que hay muchos \32 en este paratado eso es debido a que
#se necesitan espacios para imprimir bien el banner
self.textarea_proceso.append("$$$$$\32$\32\32\32\32$\32\32$$$$$\32$\32\32\32\32\32$$$$$$$\32\32\32\32\32\32######\32#####\32######\32##\32\32\32##")
self.textarea_proceso.append("$\32\32\32\32\32\32\32\32$\32\32\32\32$\32\32\32\32\32$\32\32\32\32$\32\32\32\32\32$\32\32\32\32\32$\32\32\32\32\32$\32\32\32\32\32\32#\32\32\32\32\32\32#")
self.textarea_proceso.append("$$$$$\32\32\32$\32\32\32\32\32$$$$$\32$\32\32\32\32\32$\32\32\32\32\32$||||||\32\32\32\32\32######\32#####\32######\32#\32\32\32\32\32#")
self.textarea_proceso.append("$\32\32\32\32\32\32$\32\32$\32\32\32$\32\32\32\32\32$\32\32\32\32\32$\32\32\32\32\32\32$\32\32\32\32\32\32\32\32\32\32\32#|#\32\32\32\32\32#\32\32\32\32#\32#\32\32\32\32\32#")
self.textarea_proceso.append("$$$$$\32$\32\32\32\32$\32\32$\32\32\32\32\32$$$$$\32$$$$$$$\32\32\32\32\32\32######\32#\32\32\32\32\32#\32\32\32\32#\32#\32\32\32\32\32#")
self.textarea_proceso.append("Autor: Aldair Martinez Alias Hans Krammler Junior") # Aqui declaramos mi nombre jajaj XD
def spam_uno_a_uno(self):
self.banner_anonymous()
print(self.fecha_actual)
def spam_uno_a_varios(self):
self.banner_anonymous()
print(self.fecha_actual)
print(Fore.GREEN+"HAZ ELEGIDO ENVIAR DESDE TU COREO A OTROS CORREO")
def mensaje(self):
print("SE TERMINO EL HILO")
contador_hilo_aux=0
lista_hilos=[]
workers=[]
threads=[]
def incializa_hilos(self):
if self.contador_hilo==1:
self.thread = QThread()
self.thread.setObjectName("Hilo_1")
self.worker = Worker(self.contador_hilo,self.textarea_proceso,self.label_proceso_verificacion,None)
self.worker.moveToThread(self.thread)
self.thread.setTerminationEnabled(True)
self.thread.started.connect(self.worker.run)
self.worker.finished.connect(self.terminado)
self.thread.finished.connect(lambda :self.verificar_resultado_hilo(self.thread))
self.worker.progressed.connect(lambda:self.reportProgress(self.worker))
self.worker.siguiente.connect(lambda:self.siguiente_hilo(self.thread))
self.thread.finished.connect(self.thread.quit)
self.lista_hilos.append(self.thread)
return self.lista_hilos
else:
self.lista_hilos=[]
self.threads.append(QThread())
self.threads[self.contador_hilo_aux].setObjectName("Hilo_2")
if self.contador_hilo==2:
print("Aqui tambien funciona")
self.workers.append(Worker(self.contador_hilo,self.textarea_proceso,None,self.label_proceso_verificacion2))
elif self.contador_hilo==3:
self.workers.append(Worker(self.contador_hilo,self.textarea_proceso,None,self.label_proceso_verificacion3))
self.workers[self.contador_hilo_aux].moveToThread(self.threads[self.contador_hilo_aux])
self.threads[self.contador_hilo_aux].started.connect(self.workers[self.contador_hilo_aux].run)
self.workers[self.contador_hilo_aux].finished.connect(self.terminado)
print("Pasando terminado")
self.threads[self.contador_hilo_aux].finished.connect(lambda :self.verificar_resultado_hilo(self.threads[self.contador_hilo_aux]))
print("Pasando verificar resultado")
self.workers[self.contador_hilo_aux].progressed.connect(lambda:self.reportProgress(self.workers[self.contador_hilo_aux]))
print("Pasando reportprogress")
self.workers[self.contador_hilo_aux].siguiente.connect(lambda:self.siguiente_hilo(self.threads[self.contador_hilo_aux]))
self.threads[self.contador_hilo_aux].finished.connect(self.threads[self.contador_hilo_aux].quit)
print("Pasando quit")
self.lista_hilos.append(self.threads[self.contador_hilo_aux])
return self.lista_hilos
return None
def siguiente_hilo(self,hilo):
if self.contador_hilo==1:
if hilo.isRunning()==False:
if hilo.isFinished()==True:
print("si funciono")
hilo.finished.connect(hilo.deleteLater)
hilo.finished.connect(hilo.terminate)
self.contador_hilo=self.contador_hilo+1
self.incializa_hilos()[0].start()
elif self.contador_hilo>1:
if self.get_verificado()==-1:
return -1
elif self.get_verificado()==-2:
return -2
else:
return -3
if hilo.isRunning()==False:
if hilo.isFinished()==True:
self.contador_hilo=self.contador_hilo+1
self.contador_hilo_aux=self.contador_hilo_aux+1
self.incializa_hilos()[0].start()
return 0
cursor=None
estado_hilo_x=0
lista_verificado=[]
def set_verificado(self,estado):
self.estado_hilo_x=estado
def get_verificado(self):
self.lista_verificado.append(self.estado_hilo_x)
print("get.lista.verificado"+ str(self.lista_verificado[0]))
return int(self.lista_verificado[0])
def terminado(self):
if self.contador_hilo==1:
print("TRABAJO TERMINADO")
self.thread.finished.emit()
elif self.contador_hilo>1:
self.threads[self.contador_hilo_aux].finished.emit()
def verificar_resultado_hilo(self,thread):
if self.contador_hilo==1:
if self.thread.isRunning()==False:
print("EL HILO 1 HA TERMINADO SU TAREA")
if self.thread.isFinished()==True:
print("EL HILI 1 TERMINO CON EXITO")
self.worker.progressed.emit()
elif self.contador_hilo>1:
print(str(self.contador_hilo_aux))
if thread.isRunning()==False:
print("EL HILO"+str(self.contador_hilo_aux)+"ESTA CORRIENDO")
if thread.isFinished()==True:
print("EL HILO"+str(self.contador_hilo_aux)+"HA TERMINADO")
self.workers[self.contador_hilo_aux].progressed.emit()
porcentaje=10
_i=0
lista_progreso=["INICIANDO HILO DE EJECUCION......"]
def reportProgress(self,worker):
print(self.contador_hilo)
if self.contador_hilo==1:
print("REPORTANDO HILO")
#print("POSICION ACTUAL DEL CURSOR"+str(int(self.textarea_proceso.textCursor().position())))
worker.siguiente.emit()
else:
if self.contador_hilo==2:
email=self.line_edit_user_email.text()
password =self.line_edit_user_password.text()
longitud_email=len(email)
longitud_password=len(password)
if longitud_email == 0 or longitud_password == 0:
self.set_verificado(-1)
elif self.contador_hilo==3:
email=self.line_edit_user_email.text()
email_to_list=list(email)
contador=1
for _x in len(email):
if email_to_list[_x] == "@":
contador=contador+1
if contador>1:
self.set_verificado(-2)
elif self.contador_hilo==4:
contador=1
email_dominio=email.split(".")
textarea_proceso.append("DIVIDIENDO TU EMAIL--->"+email_dominio)
longitud_dominio_email=len(email_dominio)
textarea_proceso.append("VERIFICANDO COINCIDENCIA DE DOMINIO DE EMAIL....")
dominios=["gmail.com","outlook.com","outlook.es","hotmail.com","hotmail.mx","hotmail.es"]
longitud_dominio_gmail=len(dominios[0])
longitud_dominio_outlook_com=len (dominios[1])
longitud_dominio_outlook_es=len(dominios[2])
longitud_dominio_hotmail_com=len(dominios[3])
longitud_dominio_hotmail_mx=len(dominios[4])
longitud_dominio_hotmail_es=len(dominios[5])
for _i in range(longitud_dominio_email):
for _j in (range(longitud_dominio_gmail) or range(longitud_dominio_outlook_com) or range(longitud_dominio_outlook_es) or range(longitud_dominio_hotmail_com)
or range(longitud_dominio_hotmail_mx) or range(longitud_dominio_hotmail_es)):
if _j < longitud_dominio_gmail:
if dominios[0][_j] == email_dominio[1][_j]:
print(dominios[0][j])
contador=contador+1
elif _j < longitud_dominio_outlook_com:
if dominios[1][_j] == email_dominio[1][_j]:
contador=contador+1
elif _j < longitud_dominio_outlook_es:
if dominios[2][_j] == email_dominio[1][_j]:
contador=contador+1
elif _j < longitud_dominio_hotmail_com:
if dominios[3][_j] == email_dominio[1][_j]:
contador=contador+1
elif _j < longitud_dominio_hotmail_mx:
if dominios[4][_j] == email_dominio[1][_j]:
contador=contador+1
elif _j < longitud_dominio_hotmail_es:
if dominios[5][_j]== email_dominio[1][_j]:
contador=contador+1
if contador> longitud_dominio_gmail:
return -3
else:
contador=1
print("AQUI MEN")
posicion_textarea=len(self.lista_progreso[self._i])
self.cursor= self.textarea_proceso.textCursor()
print("CURSOR ACTUAL"+ str(self.cursor))
print("POSICION CURSOR ACTUAL++"+ str(self.cursor.position()))
if self.cursor.atEnd()==True:
print("FIN DEL CURSOR True")
print("TEXTO SELECCIONADO ANTES"+self.cursor.selectedText())
posicion_inicial=(self.cursor.position()-1)-(posicion_textarea-1)+1
print("posicion inicial"+str(posicion_inicial))
time.sleep(0.4)
self.cursor.setPosition(posicion_inicial,QTextCursor.KeepAnchor)
print("TEXTO SELECCIONADO AHORA"+self.cursor.selectedText())
print("POSICION CURSOR ACTUAL--"+str(self.cursor.position()))
self.progreso=self.cursor.selectedText()+str(self.porcentaje)
self.porcentaje=self.porcentaje+10
self.textarea_proceso.append(self.progreso)
print("POSICION CURSOR ACTUAL++"+ str(self.cursor.position()))
self._i=self._i+1
worker.siguiente.emit()
def verificar_opcion(self):
pass
def validar_oprciones(self):
if self.checkbox_opcion_spam_uno_a_uno.isChecked()==True and self.checkbox_opcion_spam_uno_a_varios.isChecked():
self.label_estado_proceso.setText(Fore.RED+"LO SIENTO NO PUEDES SELECCIONAR DOS OPCIONES A LA VEZ")
return False
else:
return True
def escannear_red(self):
scan=nmap.PortScanner()
informacion_sistema=os.uname()
def presionado(self):
resultado_validar_opciones=self.validar_oprciones()
if resultado_validar_opciones==True:
self.inciar_hilo_principal()
self.resultado_verificacion_email=0
if self.resultado_verificacion_email==0:
print("PASANDO AL SIGUIENTE HILO DE EJECUCION")
if self.resultado_verificacion_email==1:
if self.checkbox_opcion_spam_uno_a_uno.isChecked()==True:
print("LAS OCPIONES SELECCIONADAAS EN LOS CASILLA SON VALIDAS")
else:
if self.resultado_verificacion_email==-1 or self.resultado_verificacion_email==-2 or self.resultado_verificacion_email==-3:
if self.resultado_verificacion_email==-1:
self.label_estado_proceso.setText("NO HAS INGRESADO NADA EN EL PRIMER CAMPO")
self.textarea_proceso.append("ERROR NO HAS INGRESADO NADA EN EL PRIMER CAMPO")
elif self.resultado_verificacion_email==-2:
self.label_estado_proceso.setText("HAS MAS DE UN ARROBA EN TU CORREO")
self.textarea_proceso.append("ERROR HAY MAS DE UN ARROBA EN TU CORREO")
elif self.resultado_verificacion_email==-3:
self.label_estado_proceso.setText("TERMINACION DE CORREO NO VALIDA")
else:
self.textarea_proceso.append("INTENTE DE NUEVO RELLENAR LOS CAMPOS ADECUADAMENTE")
def __init__(self,parent=None):
#Parte de intefaz grafica
super().__init__(parent)
self.color=QColor(0,0,0,0.5)
self.setGeometry(550,100,1500,500)
self.pallette=QPalette(self.color)
self.pallette.setColor(QPalette.Text, Qt.cyan)
self.titulo_ventana="ENVIO DE CORREO PARA HACER SPAM"
self.setWindowTitle(self.titulo_ventana)
self.setStyleSheet("border-color: cyan; border-style: dashed; border-width: 2px; color:white")
self.setPalette(self.pallette)
self.checkbox_opcion_spam_uno_a_uno=QCheckBox("REALIZAR SPAM UNO A UN CORREO")
self.checkbox_opcion_spam_uno_a_uno.clicked.connect(self.spam_uno_a_uno)
self.checkbox_opcion_spam_uno_a_varios=QCheckBox("REALIZAR SPAM UNO A VARIOS COOREOS")
self.checkbox_opcion_spam_uno_a_varios.clicked.connect(self.spam_uno_a_varios)
self.label_user_email=QLabel("Ingresa tu direccion de correo: ")
self.label_user_email.setFont(QFont("Times",14,QFont.Bold,True))
self.label_user_email.setStyleSheet("color: white")
self.line_edit_user_email=QLineEdit(self)
self.line_edit_user_email.setPlaceholderText("Ingresa tu direccion de cooreo:")
self.line_edit_user_email.setFont(QFont("Times",14,QFont.Bold,True))
self.line_edit_user_email.setStyleSheet("color : black")
self.label_user_password=QLabel("Ingresa tu password de correo")
self.label_user_password.setFont(QFont("Times",14,QFont.Bold,True))
self.label_user_password.setStyleSheet("color: white")
self.line_edit_user_password=QLineEdit(self)
self.line_edit_user_password.setPlaceholderText("Ingresa tu password de tu correo:")
self.line_edit_user_password.setFont(QFont("Times",14,QFont.Bold,True))
self.line_edit_user_password.setStyleSheet("color : black")
self.label_victima_email=QLabel("Ingresa direccion de correo destinatario: ")
self.label_victima_email.setFont(QFont("Times",14,QFont.Bold,True))
self.label_victima_email.setStyleSheet("color: white")
self.line_edit_victima_email=QLineEdit(self)
self.line_edit_victima_email.setPlaceholderText("Ingresa tu direccion de cooreo:")
self.line_edit_victima_email.setFont(QFont("Times",14,QFont.Bold,True))
self.line_edit_victima_email.setStyleSheet("color : black")
self.label_user_asunto=QLabel("Ingresa el asunto ")
self.label_user_asunto.setFont(QFont("Times",14,QFont.Bold,True))
self.label_user_asunto.setStyleSheet("color: white")
self.line_edit_user_asunto=QLineEdit(self)
self.line_edit_user_asunto.setPlaceholderText("Ingresa tu direccion de cooreo:")
self.line_edit_user_asunto.setFont(QFont("Times",14,QFont.Bold,True))
self.line_edit_user_asunto.setStyleSheet("color : black")
self.pushbutton_enviar=QPushButton("ENVIAR SPAM")
self.pushbutton_enviar.setFont(QFont("Times",14,QFont.Bold,True))
self.pushbutton_enviar.setPalette(self.pallette)
self.label_estado_proceso=QLabel("")
self.label_estado_proceso.setText("ESPERANDO DATOS....")
self.label_proceso=QLabel("Estado verificacion email y password")
self.label_proceso_verificacion=QLabel("")
self.label_proceso2=QLabel("Estado verificacion arroba de email origen y destino")
self.label_proceso_verificacion2=QLabel("")
self.label_proceso3=QLabel("Estado verificacion terminacion correo origen y destino")
self.label_proceso_verificacion3=QLabel("")
self.combobox_dominios_from=QComboBox()
self.combobox_dominios_from.addItem("Gmail.com")
self.combobox_dominios_from.insertSeparator(1)
self.combobox_dominios_from.addItem("Outlook.com")
self.combobox_dominios_from.addItem("Outlook.es")
self.combobox_dominios_from.insertSeparator(4)
self.combobox_dominios_from.addItem("Hotmail.com")
self.combobox_dominios_from.addItem("Hotmail.es")
self.combobox_dominios_from.addItem("Hotmail.mx")
self.combobox_dominios_from.setStyleSheet("background-color:black; color: cyan")
self.combobox_dominios_to=QComboBox()
self.combobox_dominios_to.addItem("Gmail.com")
self.combobox_dominios_to.insertSeparator(1)
self.combobox_dominios_to.addItem("Outlook.com")
self.combobox_dominios_to.addItem("Outlook.es")
self.combobox_dominios_to.insertSeparator(4)
self.combobox_dominios_to.addItem("Hotmail.com")
self.combobox_dominios_to.addItem("Hotmail.es")
self.combobox_dominios_to.addItem("Hotmail.mx")
self.combobox_dominios_to.setStyleSheet("background-color:black; color: cyan")
self.combobox_dominios_from.currentTextChanged.connect(self.verificar_opcion)
self.combobox_dominios_to.currentTextChanged.connect(self.verificar_opcion)
self.pushbutton_enviar.clicked.connect(self.presionado)
self.layout_main=QHBoxLayout(self)
self.layout_principal=QVBoxLayout()
self.layout_principal.addWidget(self.label_user_email)
self.layout_principal.addWidget(self.line_edit_user_email)
self.layout_principal.addWidget(self.label_user_password)
self.layout_principal.addWidget(self.line_edit_user_password)
self.layout_principal.addWidget(self.label_victima_email)
self.layout_principal.addWidget(self.line_edit_victima_email)
self.layout_principal.addWidget(self.label_user_asunto)
self.layout_principal.addWidget(self.line_edit_user_asunto)
self.layout_principal.addWidget(self.checkbox_opcion_spam_uno_a_uno)
self.layout_principal.addWidget(self.checkbox_opcion_spam_uno_a_varios)
self.layout_principal.addWidget(self.pushbutton_enviar)
self.layout_principal.addWidget(self.label_estado_proceso)
self.layout_principal.addWidget(self.combobox_dominios_from)
self.layout_principal.addWidget(self.combobox_dominios_to)
self.layout_principal.addWidget(self.label_proceso)
self.layout_principal.addWidget(self.label_proceso_verificacion)
self.layout_principal.addWidget(self.label_proceso2)
self.layout_principal.addWidget(self.label_proceso_verificacion2)
self.layout_principal.addWidget(self.label_proceso3)
self.layout_principal.addWidget(self.label_proceso_verificacion3)
self.layout_secundario=QVBoxLayout()
self.textarea_proceso=QTextEdit()
self.textarea_proceso.setPlaceholderText("ESPERANDO PARA PROCESAR")
self.textarea_proceso.setFont(QFont("Times",14,QFont.Bold,True))
self.textarea_proceso.setGeometry(0,0,500,400)
self.textarea_proceso.setStyleSheet("color: yellow; background-color:black; border-style:solid")
self.textarea_proceso.setReadOnly(False)
self.textarea_proceso.setOverwriteMode(QTextEdit.WidgetWidth)
self.layout_secundario.addWidget(self.textarea_proceso)
self.layout_main.addLayout(self.layout_principal,4)
self.layout_main.addLayout(self.layout_secundario,4)
def inciar_hilo_principal(self):
self.incializa_hilos()[0].start()
return 0
"""
#aqui es donde viene lo importante el envio del spam este es el metodo de oro
#como puedes ver el primero metodo es para enviar de uno a uno
#mientras que el segundo metodo es para enviar de uno a varios
"""
"""
def enviar_email_uno_a_uno(self):
msg['From'] = self.line_edit_user_email.text()
password=self.line_edit_user_password.text()
msg['To'] = self.line_edit_victima_email.text()
msg['Subject'] = self.line_edit_asunto.text()
msg.attach(MIMEText(message, 'plain'))
try:
if self.combobox_dominios_to.currentText()=="Gmail.com":
server = smtplib.SMTP('smtp.gmail.com: 587')
elif self.combobox_dominios_to.currentText()=="Outlook.com":
server = smtplib.SMTP('smtp.outlook.com: 587')
elif self.combobox_dominios_to.currentText()=="Outlook.es":
server = smtplib.SMTP('smtp.outlook.es: 587')
elif self.combobox_dominios_to.currentText()=="Hotmail.com":
server = smtplib.SMTP("smtp.hotmail.com: 587")
except smtplib.SMTPConnectError as conexion_rechazado:
print(Font.RED+"ERROR EL ESTABLECIMIENTO DE LA CONEXION CON EL SERVIDOR SE HA RECHAZADO")
server.starttls()
server.login(msg['From'],password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()
print ("successfully sent email to %s:" % (msg['To']))
"""
#sentencia main principal
if __name__ =="__main__":
app = QApplication(sys.argv)
instancia_ventana=main_principal()
instancia_ventana.show()
sys.exit(app.exec_())