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