我有一个python脚本,它读取outlook中的每个新电子邮件并将内容保存到文件中。问题是,当我收到新电子邮件时文件被覆盖了
如何在同一目录中创建具有不同名称的新文件,而不会在每次收到新电子邮件时覆盖其他文件。这是我到目前为止:
import win32com.client
import pythoncom
path = "C:\\Users\\..\\....\\newEmail.txt"
class Handler_Class(object):
def OnNewMailEx(self, receivedItemsIDs):
for ID in receivedItemsIDs.split(","):
mailitem_properties.aspx
mailItem = outlook.Session.GetItemFromID(ID)
file = open(path, "w")
file.write(mailItem.SenderEmailAddress + "\n")
file.write(mailItem.Subject + "\n")
file.write(mailItem.Body + "\n")
file.close()
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()
答案 0 :(得分:0)
您可以在每次创建文件名时将创建时间附加到文件名中,如下所示:
import win32com.client
import pythoncom
import time
class Handler_Class(object):
def OnNewMailEx(self, receivedItemsIDs):
for ID in receivedItemsIDs.split(","):
mailitem_properties.aspx
mailItem = outlook.Session.GetItemFromID(ID)
path = "C:\\Users\\..\\....\\newEmail_" + time.ctime().replace(' ', '_') + ".txt"
file = open(path, "w")
file.write(mailItem.SenderEmailAddress + "\n")
file.write(mailItem.Subject + "\n")
file.write(mailItem.Body + "\n")
file.close()
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()
或者,您可以获得mailItem
收到的时间并附加到文件名,以便它成为唯一的文件名。