在 Python 中存储从 Outlook 获取的电子邮件时出现编码错误



尝试将Outlook Mails Info保存到MongoDB时出现以下错误。 请帮助我解决这个问题,帮助我使用以下代码进行编码。任何帮助将不胜感激。

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
accounts= win32com.client.Dispatch("Outlook.Application").Session.Accounts;
def emailleri_al(folder):   
Scrapeddate = datetime.datetime.today().strftime("%d-%m-%y %X")
messages = folder.Items
messages.Sort("[ReceivedTime]", False)
sfilter="[SentOn] < Scrapeddate"
for message2 in messages.Restrict(sfilter):
SourceType='EMAIL'
Subject=message2.Subject
SourceEmailID=message2.To
senttime=message2.Senton.strftime("%d-%m-%y %X")
emailids=message2.EntryID
emailfrom=message2.Sender
Emailbody=message2.Body
collection.insert_one({'SourceType':SourceType,
'SourceEmailID':SourceEmailID,
'Scraped date':Scrapeddate,
'Email Sent Datetime':senttime,
'Email id from':emailfrom,
'Subject':Subject,
'Email Type':'HotList',
'Email Body':Emailbody,
'Emailids':emailids})
```
ERROR : InvalidDocument: cannot encode object: <COMObject <unknown>>, of type: <class 'win32com.client.CDispatch'>

MailItem.SenderAddressEntry类型的对象,而不是标量值(如字符串、整数或日期时间(。

使用MailItem.SenderName和/或MailItem.SenderEmailAddress。对于后一个属性,请确保获取 SMTP 地址 - 如果MailItem.SenderEmailType== "EX",请使用MailItem.Sender.GetExchangeUser().PrimarySmtpAddress。准备好处理空值和异常。

最新更新