如何用Python从Outlook提取带有部分可变主题的邮件附件?
需要从一封电子邮件中提取一个附加的CSV文件,并在Python中保存它。这封邮件的主题有一部分是固定的,固定部分是:电子邮件报表 [今天的日期,格式为 dd/mm/yy]。另外,主题中还有一部分是随机的数字。
有人尝试了以下方法:
import glob
import win32com.client as win32
from datetime import date
Date_fmt2 = (date.today()).strftime("%d/%m/%y")
outlook = win32.Dispatch('outlook.application').GetNamespace("MAPI")
folder = outlook.Folders.Item(1).Folders.Item("Inbox").Folders.Item("Statements")
messages = folder.Items
for message in messages:
if message.Subject == glob.glob(str('e-mail statement ' + Date_fmt2 + '*')):
attachment = message.Attachments.Item(1)
attachment.SaveAsFile('C:\\...\\Statement ' + Date_fmt2 + '.csv')
他们认为 glob.glob
这个部分可以解决变量名称的问题,但似乎返回了一个空值。有没有人知道该怎么做?
提前谢谢大家!
1 个回答
1
如果问题出在glob.glob上,你可以试试用“startswith”这个方法。
if message.Subject.startswith('e-mail statement ' + Date_fmt2):
attachment = message.Attachments.Item(1)
attachment.SaveAsFile('C:\\...\\Statement ' + Date_fmt2 + '.csv')
这个方法只有在变量部分在字符串的末尾时才是正确的。
https://www.w3schools.com/python/ref_string_startswith.asp