[英]Exchangelib read emails from a service account without personal login
我想閱讀共享服務帳戶的收件箱。 服務帳戶收件箱是共享收件箱,本身沒有密碼。 我可以使用以下方式登錄並閱讀我的個人收件箱:
from exchangelib import DELEGATE, Account, Credentials
import pytz
from datetime import datetime, date, time
now = datetime.now() # current date and time
timestr = now.strftime("%m-%d-%Y, %H.%M.%S")
credentials = Credentials(
username='me@company.org',
password='Password1'
)
a = Account(
primary_smtp_address='me@company.org',
credentials=credentials,
autodiscover=True,
access_type=DELEGATE
)
print('im in')
key = 'Filter Word'
midnight = datetime.combine(datetime.today(), time.min, pytz.UTC)
for item in a.inbox.filter(datetime_received__gte=midnight, subject__icontains=key).order_by('-datetime_received')[
:30]:
print(item.subject)
我認為我的問題的答案在憑據部分。 我已經能夠通過使用我的個人憑證並在 primary_smtp_address 字段中輸入收件箱地址來讀取共享收件箱。 像這樣:
credentials = Credentials(
username='me@company.org',
password='Password1'
)
a = Account(
primary_smtp_address='sharedinbox@company.org',
credentials=credentials,
autodiscover=True,
access_type=DELEGATE
)
這很好用,但是,如果(出於某種原因)我的憑據在公司不再有效,我希望腳本仍然運行。 有沒有辦法做到這一點?
如果您不想使用個人帳戶訪問共享帳戶,您應該在 Exchange 中創建一個服務帳戶並使用該帳戶登錄。
如果沒有某種身份驗證,您將無法訪問共享帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.