我有一台机器正在运行一些我需要密切关注的脚本。
我在 python 中设置了一个脚本,每小时向我发送电子邮件。
我想为其添加时间戳,以便我可以一目了然地看到机器发送的最后一条消息是什么时候,以了解它正在运行。当测试每 120 秒发送一次电子邮件时,我发现电子邮件发送部分工作正常,但时间戳没有更新。无法弄清楚我做错了什么。
打印语句在每次循环后返回相同的时间戳,电子邮件也是如此。
Email Sent at 18 December 2024 13:16:50
Email Sent at 18 December 2024 13:16:50
Email Sent at 18 December 2024 13:16:50
我的代码:
import asyncio
#Main Event loop to send emails
async def send_email(timestamp):
import datetime as dt
timestamp = dt.datetime.now()
import socket
hostname = socket.gethostname()
import getpass
user = getpass.getuser()
timestamp_string = timestamp.strftime("%d %B %Y %H:%M:%S")
subject = f"Machine Status Check - {timestamp_string}"
html_body = f"""
Machine Name: {hostname}\n
User ID: {user}
"""
to = "[email protected]"
while True:
import win32com.client
outlook = win32com.client.gencache.EnsureDispatch('Outlook.Application')
new_email = outlook.CreateItem(0)
new_email.To = to
new_email.Subject = subject
new_email.HTMLBody = html_body
new_email.Send()
print(f"Email Sent at {timestamp_string}")
await asyncio.sleep(120)
#Run the asyncio event loop
async def main():
await send_email()
#Start the event loop
asyncio.run(main=main())