首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用smtplib python发送随机消息

使用smtplib python发送随机消息
EN

Stack Overflow用户
提问于 2021-06-18 21:41:55
回答 1查看 46关注 0票数 0

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

代码语言:javascript
运行
复制
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()从列表中随机选择消息变量,但也不起作用。

问题会是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-18 21:51:50

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

应该在每次迭代while循环时调用generate(),如下所示:

代码语言:javascript
运行
复制
count = 10
lol = 0
while lol < count:
    lol+=1
    server.sendmail(email, recipient, generator())
    print('done')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68036236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档