繁体   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