我想用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()从列表中随机选择消息变量,但也不起作用。
问题会是什么呢?
发布于 2021-06-18 21:51:50
您的错误是:使用message=generator()生成一条消息,并在循环中使用相同的message。这就是为什么它总是相同的字符串。
应该在每次迭代while循环时调用generate(),如下所示:
count = 10
lol = 0
while lol < count:
lol+=1
server.sendmail(email, recipient, generator())
print('done')https://stackoverflow.com/questions/68036236
复制相似问题