Envio de whatsapp
Para enviar whatsapp vamos a instalar pywhatkit
pip install pywhatkit
Requisitos para el uso de pywhatkit
Además de la instalación de pywhatkit es necesario haber iniciado sesión en la versión de web de WhatsApp, debido a que el programa enviará el mensaje a través de esta. Por lo que será necesario que el teléfono asociado se mantenga en la misma red que el ordenador. Algo que en algunos casos puede ser una limitación de cara a usar el programa.
En esta aplicación vamos a tener que dar enter para que se envie el mensaje. Escribimos el siguiente código
import tkinter as tk
import secrets
import string
import mysql.connector
import pywhatkit
import smtplib, ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from tkinter import font, ttk
from tkinter import messagebox as mb
# Definir la función que se ejecutará cuando se haga clic en el botón
def enviar_password():
if (len(nombre.get().strip()) and len(apellidoPaterno.get().strip())
and len(email.get().strip()) and len(whatsapp.get().strip())):
password=Generar_password()
mydb = mysql.connector.connect(
host="localhost",
user="admin",
passwd="adminlara",
database="keygendb"
)
mycursor = mydb.cursor()
sql = "INSERT INTO usuario (nombre,apellido_paterno,apellido_materno,email,whatsapp,puesto,password) VALUES (%s,%s,%s,%s,%s,%s,%s)"
parameters=(nombre.get(),apellidoPaterno.get(),apellidoMaterno.get(),email.get(),
whatsapp.get(),puesto.get(),password)
mycursor.execute(sql, parameters)
mydb.commit()
mycursor.close()
mydb.close()
Enviar_email(nombre.get(),email.get(),password)
Enviar_Whatsapp(whatsapp.get(),password)
Limpiar_formulario()
else:
mb.showerror("Error","Campo vacío")
def Generar_password():
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
alphabet = letters + digits + special_chars
pwd_length = 8
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
return pwd
def Enviar_email(nombre,email,password):
context = ssl.create_default_context()
with smtplib.SMTP_SSL("smtp.gmail.com",465,context=context) as server:
username="laralopezjosemartin@gmail.com"
password_email="tupassword"
server.login(username,password_email)
destinatario=email
asunto="Envio de password tutosoftware"
mensaje= MIMEMultipart("alternative")
mensaje["Subject"] = asunto
mensaje["From"]=username
mensaje["To"]=destinatario
html=f"""
<html>
<body>
<h1>{nombre}</h1>
<h2>Tu password es: {password}</h2>
</body>
</html>
"""
parte_html=MIMEText(html,"html")
mensaje.attach(parte_html)
server.sendmail(username,destinatario,mensaje.as_string())
def Enviar_Whatsapp(telefono,password):
mensaje=f"La contraseña de tutosoftware es {password}"
pywhatkit.sendwhatmsg_instantly(telefono,mensaje,30,True,15)
mb.showinfo("Información", f"La contraseña {password} fue enviada")
def Limpiar_formulario():
nombre.delete(0,'end')
apellidoPaterno.delete(0,'end')
apellidoMaterno.delete(0,'end')
email.delete(0,'end')
whatsapp.delete(0,'end')
# Crear la ventana principal
ventana = tk.Tk()
ventana.title("SendKeyGen")
ventana.geometry("500x600")
label = tk.Label(ventana, text="Sendkeygen")
label.pack(anchor="center")
label.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",24))
# Crear los widgets del formulario
labelNombre=tk.Label(ventana, text="Nombre:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
nombre = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
nombre.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Apellido Paterno:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
apellidoPaterno = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
apellidoPaterno.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Apellido Materno:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
apellidoMaterno = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
apellidoMaterno.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Email:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
email = ttk.Entry(font=font.Font(family="Times", size=14),width=50)
email.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="WhatsApp:(+52xxxxxxxxxx)")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
whatsapp = ttk.Entry(font=font.Font(family="Times", size=14),width=15)
whatsapp.pack(anchor="nw")
labelNombre=tk.Label(ventana, text="Puesto:")
labelNombre.pack(anchor="nw")
labelNombre.config(fg="white", # Foreground
bg="gray", # Background
font=("Verdana",14))
puesto = ttk.Combobox(values=["Administrador", "Gerente", "Empleado"], font=font.Font(size=15))
puesto.current(0)
puesto.pack(anchor="nw")
boton_enviar = tk.Button(ventana, text="Enviar Password", command=enviar_password,
width=30, height=5,bg="gray",fg="white",font=("Comic Sans", 10,"bold"))
boton_enviar.pack(anchor="center")
# Mostrar la ventana
ventana.mainloop()
Enviando Whatsapp
Se abre whatsapp y presionamos enter para que envie el mensaje sino se cierra y no se envia nada(Human Task)
Se mando el whats