Envio de correo

El envio de correo lo vamos a realizar desde una cuenta de gmail tu lo puedes realizar desde cualquier otro servidor SMTP de tu preferencia.
Escribimos el siguiente código
 
   
 # coding=utf-8
import tkinter as tk
import secrets
import string
import mysql.connector
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)
    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())
        mb.showinfo("Información", f"La contraseña {password} fue enviada")




# 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:")
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 el correo

phyton project
Correo recibido
phyton project
Revisando el correo
phyton project
Se va modificar hasta llegar al resultado final.