使用 smtplib python 发送随机消息

sending random messages with smtplib python

我想在 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() 从那里随机选择消息变量,但它也没有用.

可能是什么问题?

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

每次迭代 while 循环时都应调用 generate()

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