我想在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>
可能是什么问题?
答案 0 :(得分:0)
您的错误:使用 message=generator()
生成一条消息并在循环内使用相同的 message
。这就是为什么它总是相同的字符串。
每次遍历 while 循环时都应该调用 generate()
,如下所示:
count = 10
lol = 0
while lol < count:
lol+=1
server.sendmail(email, recipient, generator())
print('done')