使用 smtplib python 发送随机消息

时间:2021-06-18 13:41:55

标签: python random smtp

我想在python中使用smtplib发送随机消息,我写了这段代码:

import random, string, smtplib


def generator():
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(8))

def login():
    try:
        global email, server
        email = ''
        pswd = ''
        smtp_server = 'smtp.gmail.com'
        port = 587
        server = smtplib.SMTP(smtp_server,port)
        server.ehlo()
        if smtp_server == "smtp.gmail.com":
            server.starttls()
        server.login(email,pswd)

    except smtplib.SMTPAuthenticationError:
        print('error')

def send():
    try:
        recipient = ''
        message = generator()
        count = 10
        lol = 0
        while lol < count:
            lol+=1
            server.sendmail(email,recipient,message)
            print('done')

    except smtplib.SMTPAuthenticationError:
        print('error')

login()
send()

我收到了消息,但使用相同的字符串,我还尝试制作一个随机字符串列表,然后使用 random.choice() 从那里随机选择消息变量,但它也不起作用。< /p>

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

您的错误:使用 message=generator() 生成一条消息并在循环内使用相同的 message。这就是为什么它总是相同的字符串。

每次遍历 while 循环时都应该调用 generate(),如下所示:

count = 10
lol = 0
while lol < count:
    lol+=1
    server.sendmail(email, recipient, generator())
    print('done')