2.08.2017 г.

Generate random password and send to email with python

#IMOPORT MODULES
import random
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
#HARDCORE NAME AND EMAIL
list_with_names = {"First Name": "first_email@abv.bg", "Second Name": "second_email@abv.bg"}
sender = 'unrealborko@gmail.com'
#FUCNTION GENERATE PASSWORD'S
def generate(name):
    choice = "a#@bcdeb1234567890ABCDFEGH"
    ask = random.sample(choice, 8)
    forma = [['@', '#', '!'], [i for i in ('abcdfegh')], [i for i in ('ABCDFEGH')], [i for i in ('1234567890')]]
    while (any(z in forma[0] for z in [i for i in ask])
         and any(z in forma[1] for z in [i for i in ask])
          and any(z in forma[2] for z in [i for i in ask])
        and any(z in forma[3] for z in [i for i in ask])) != True:
        ask = random.sample(choice, 8)
       
    return("Password for {} is {}".format(name, "".join(ask)))

#FUNCTION TO SEND PASSWORD TO NAME EMAIL
def sendmail(from_email, to_addr, subject, message, login, password, name, smtpserver = "smtp.gmail.com", smtpport = 587):
    from_email = from_email
    to_addr = to_addr
    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_addr
    msg['Subject'] = subject
    passsfare = generate(name)
    body = "{}".format(passsfare)
    msg.attach(MIMEText(body, 'plain'))
    server = smtplib.SMTP(smtpserver)
    server.starttls()
    server.login(login, password)
    text = msg.as_string()
    server.sendmail(from_email, to_addr, text)
    server.quit()
#FUNCTION APPLY PASSWORD TO NAME
def password_to_name():
    for name, email in list_with_names.items():
        sendmail(from_email = "sender email is here",
            to_addr = email,
            subject = "Password for {}".format(name),
            message = "This is a password",
            login = "borkounreal@gmail.com",
            password = "userpassword is here!!!!!1",
            name = name)
        #print(generate(name))

if __name__ == "__main__":
    password_to_name()

1 коментар :