#python #outlook
#python #outlook
Вопрос:
В моем Outlook у меня есть 2 учетные записи (учетная запись 1 и учетная запись 2). Учетная запись 1 является учетной записью по умолчанию.
Я пытаюсь прочитать электронное письмо из учетной записи 2 из кода python. Я попробовал другой подход, но он не сработал.
Я публикую свой код, где он считывается из моей учетной записи по умолчанию. Не могли бы вы помочь мне прочитать электронные письма из учетной записи 2 (которая не используется по умолчанию)
from win32com.client import Dispatch
import time
import datetime
import re
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = datetime.date.today()
sub_today = 'test4'
att_today = '20201018_2.xlsx'
#att_today = re.match(regex_, )
for msg in all_inbox:
if msg.Subject.find(sub_today) != -1 and msg.SentOn.date() == val_date:
break
for att in msg.Attachments:
if att.FileName == att_today:
print(att_today)
break
try:
print(att.FileName)
#att.SaveAsFile("C:/Users/Shwettha/Downloads/attachment/" att.FileName)
att.SaveAsFile(os.path.join("D:ScriptMonitoring",att.FileName))
print("SUCCESSFUL","Attachments Downloaded")
except:
print("ERROR","Attachment Download Failed")
Ответ №1:
Попробуйте настроить свой почтовый ящик следующим образом
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders["0m3r@Email.com"].Folders["Inbox"]
Или используйте метод GetSharedDefaultFolder (Outlook)
import win32com.client
Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Recip = olNs.CreateRecipient("0m3r@Email.com")
Recip.Resolve()
shared_inbox = olNs.GetSharedDefaultFolder(Recip, "6")
for Item in shared_inbox.Items:
print(Item.Subject)
Комментарии:
1. Несмотря на то, что я дал выше lines…it s принимает почтовый ящик по умолчанию
2. @Kanagambala посмотрите на второй пример.
3. помните, что электронная почта чувствительна к регистру