0

在无休止的 while 循环中,我想每 60 秒发送一封带有附件的邮件。附件是一个包含测量设备数据的文件。这意味着数据总是在变化。该代码工作正常,但每次发送电子邮件时都会增加附件数量。这意味着当它发送第一封邮件时包含一个附件,当它在 60 秒后发送第二封邮件时它包含两次附件,然后在 60 秒后它包含三个附件,依此类推。它应该只有一个附件。我错了什么?

txt = MIMEText('Die heutigen Messdaten')
msg.attach(txt)

curr_time = time.time()
next_time = curr_time + 10
while True:
    if (next_time >= curr_time):
        curr_time = time.time()
        print("do nothing")
    else:
        s = smtplib.SMTP_SSL(smtp_ssl_host, smtp_ssl_port)
        s.login(email_user, email_pass)
        next_time = next_time + 60
        curr_time = time.time()
        print(next_time)
        print(curr_time)
        file_dir = '/home/pi/Projekte/Test1/'
        file_name = 'Stromzaehler18.txt'
        filename = file_dir + file_name
        #filename = '/home/pi/Projekte/Test1/Stromzaehler18.txt'
        fo18=open(filename,'rb')
        attach =
        email.mime.application.MIMEApplication(fo18.read(),
       _subtype="pdf")
        fo18.close()
        attach.add_header('Content-
        Disposition','attachment',filename=file_name)
        msg.attach(attach)
        s.send_message(msg)
        s.quit()
print("Finished!")
s.quit()

附件数量每 60 秒增加一次(否则……)。附件数应始终为 1。

4

0 回答 0