使用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')

最新更新