簡體   English   中英

Exchangelib 無需個人登錄即可從服務帳戶讀取電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM