问题描述
我使用库exchangelib随机遇到身份验证错误:
from exchangelib import DELEGATE,Account,Credentials
creds = Credentials(
username=username,password=pw)
account = Account(
primary_smtp_address=mailbox_mail,credentials=creds,autodiscover=True,access_type=DELEGATE
)
account变量的定义会导致以下错误,但是在相关文档中找不到原因或有用的地方:
[2020-09-03 15:00:56,588] {taskinstance.py:1059} ERROR - 'www-authenticate'
Traceback (most recent call last)
File "/opt/python3.6/lib/python3.6/site-packages/cached_property.py",line 69,in __get_
return obj_dict[name
KeyError: 'root
During handling of the above exception,another exception occurred
Traceback (most recent call last)
File "/usr/local/lib/airflow/airflow/models/taskinstance.py",line 930,in _run_raw_tas
result = task_copy.execute(context=context
File "/usr/local/lib/airflow/airflow/operators/python_operator.py",line 113,in execut
return_value = self.execute_callable(
File "/usr/local/lib/airflow/airflow/operators/python_operator.py",line 118,in execute_callabl
return self.python_callable(*self.op_args,**self.op_kwargs
File "/home/airflow/gcs/dags/dg_functions/dg_flash_news_competitiva_mail/fun_flash_news_extract.py",line 34,in flash_news_extractio
inbox = account.root / 'Top of Information Store' / 'Inbox
File "/opt/python3.6/lib/python3.6/site-packages/cached_property.py",line 73,in __get_
return obj_dict.setdefault(name,self.func(obj)
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/account.py",line 270,in roo
return Root.get_distinguished(account=self
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/folders/roots.py",line 109,in get_distinguishe
folder=cls(account=account,name=cls.DISTINGUISHED_FOLDER_ID,is_distinguished=True
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/folders/base.py",line 487,in resolv
folders = list(FolderCollection(account=account,folders=[folder]).resolve()
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/folders/collections.py",line 256,in resolv
additional_fields=additional_field
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/folders/collections.py",line 319,in get_folder
shape=ID_ONLY
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/services/get_folder.py",in cal
shape=shape
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/services/common.py",line 540,in _pool_request
for elem in self._get_elements(payload=payload_func(chunk,**kwargs))
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/services/common.py",line 84,in _get_element
response = self._get_response_xml(payload=payload
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/services/common.py",line 162,in _get_response_xm
stream=self.streaming
File "/opt/python3.6/lib/python3.6/site-packages/exchangelib/util.py",line 715,in post_ratelimite
stream=stream
File "/opt/python3.6/lib/python3.6/site-packages/requests/sessions.py",line 578,in pos
return self.request('POST',url,data=data,json=json,**kwargs
File "/opt/python3.6/lib/python3.6/site-packages/requests/sessions.py",line 530,in reques
resp = self.send(prep,**send_kwargs
File "/opt/python3.6/lib/python3.6/site-packages/requests/sessions.py",line 650,in sen
r = dispatch_hook('response',hooks,r,**kwargs
File "/opt/python3.6/lib/python3.6/site-packages/requests/hooks.py",line 31,in dispatch_hoo
_hook_data = hook(hook_data,**kwargs
File "/opt/python3.6/lib/python3.6/site-packages/requests_ntlm/requests_ntlm.py",line 151,in response_hoo
kwarg
File "/opt/python3.6/lib/python3.6/site-packages/requests_ntlm/requests_ntlm.py",line 103,in retry_using_http_NTLM_aut
auth_header_value = response2.headers[auth_header_field
File "/opt/python3.6/lib/python3.6/site-packages/requests/structures.py",line 54,in __getitem_
return self._store[key.lower()][1
KeyError: 'www-authenticate
这很奇怪,因为此错误似乎是随机发生的。 发生此错误时,我只需重新运行代码即可立即开始工作。
我使用exchangelib == 3.2.0和Python 3.7。
编辑:以下您可以找到一个确定日志和一个KO日志:
确定日志:
2020-09-04 10:12:24 DEBUG Waiting for autodiscover_cache lock
2020-09-04 10:12:24 DEBUG autodiscover_cache lock acquired
2020-09-04 10:12:24 DEBUG Server [server_name]: Created session 29854
2020-09-04 10:12:24 DEBUG Cache hit for key ([domain_name],Credentials([domaint][user],'********')): https://[server_name]/Autodiscover/Autodiscover.xml
2020-09-04 10:12:24 DEBUG Server [server_name]: Waiting for session
2020-09-04 10:12:24 DEBUG Server [server_name]: Got session 29854
2020-09-04 10:12:24 DEBUG Session 29854 thread 140450161141504: retry 0 timeout 10 POST'ing to https://[server_name]/Autodiscover/Autodiscover.xml after 10s wait
2020-09-04 10:12:24 DEBUG Starting new HTTPS connection (1): [server_name]:443
2020-09-04 10:12:24 DEBUG https://[server_name]:443 "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 401 0
2020-09-04 10:12:24 DEBUG https://[server_name]:443 "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 401 0
2020-09-04 10:12:24 DEBUG https://[server_name]:443 "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 200 1512
2020-09-04 10:12:24 DEBUG Retry: 0
Waited: 10
Timeout: 10
Session: 29854
Thread: 140450161141504
Auth type: <requests_ntlm.requests_ntlm.HttpNtlmAuth object at 0x7fbd16c577c0>
URL: https://[server_name]/Autodiscover/Autodiscover.xml
HTTP adapter: <requests.adapters.HTTPAdapter object at 0x7fbd16c576d0>
Allow redirects: False
Streaming: False
Response time: 0.45260270000017044
Status code: 200
Request headers: {'User-Agent': 'exchangelib/3.2.0 (python-requests/2.24.0)','Accept-Encoding': 'gzip,deflate','Accept': '*/*','Connection': 'Keep-Alive','Content-Type': 'text/xml; charset=utf-8','Content-Length': '363','Authorization': 'NTLM TlRMTVNTUAADAAAAGAAYAIQAAADcANwAnAAAABAAEABYAAAAHAAcAGgAAAAAAAAAhAAAABAAEAB4AQAANYKJ4gYBsR0AAAAPub38DriCTdGYXyBeyEmnhFcASQBOAEQAUgBPAE8AVABkAGEAdABhAGcAbwB2AGUAcgBuAGEAbgBjAGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5YSqd4DM1UDCWxxNIp33ZQEBAAAAAAAAhiCP86OC1gHUAV9Y4d/fWgAAAAACABAAVwBJAE4ARABSAE8ATwBUAAEADgBXAE0ATwBFAFgAMAA0AAQAGAB3AGkAbgBkAC4AcgBvAG8AdAAuAGkAdAADACgAVwBNAE8ARQBYADAANAAuAHcAaQBuAGQALgByAG8AbwB0AC4AaQB0AAUADgByAG8AbwB0AC4AaQB0AAcACACGII/zo4LWAQYABAACAAAACgAQADeb/GQ6brEyEkTMYIxALRMAAAAAAAAAAGR+d4O+5tqPvV7v0nc4Lxo='}
Response headers: {'Cache-Control': 'private','Content-Length': '1512','Content-Encoding': 'gzip','Vary': 'Accept-Encoding','Server': 'Microsoft-IIS/8.5','Set-Cookie': 'X-BackEndCookie=S-1-5-21-842925246-725345543-1163770773-1933531=u56Lnp2ejJqBy82bmZqeycbSx8ucztLLxsjH0seczJ3SnMjKxprNmpnGyZyZgYHNz83P0s7P0s/Lq87Pxc7NxcrMgY2QkIvRlouBzg==; expires=Sun,04-Oct-2020 10:12:53 GMT; path=/Autodiscover; secure; HttpOnly','Persistent-Auth': 'true','request-id': '75ad68fb-99a1-490d-a755-21df9b7dc8d7','X-CalculatedBETarget': 'wivex01.[domain_name]','X-DiagInfo': 'WIVEX01','X-BEServer': 'WIVEX01','X-AspNet-Version': '4.0.30319','X-Powered-By': 'ASP.NET,ARR/3.0','X-FEServer': 'WMOEX04','Date': 'Fri,04 Sep 2020 10:12:24 GMT'}
Request data: b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"><Request><EMailAddress>[mail_address]</EMailAddress><AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema></Request></Autodiscover>'
Response data: b'<?xml version="1.0" encoding="utf-8"?>\r\n<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">\r\n <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">\r\n <User>\r\n <DisplayName>Servizio Data Governance BDA</DisplayName>\r\n <LegacyDN>/o=Wind/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=30cb9e003a984ecab16ac41684388a50-Servizio Data Gover</LegacyDN>\r\n <AutoDiscoverSMTPAddress>[mail_address]</AutoDiscoverSMTPAddress>\r\n <DeploymentId>a97bb132-fdfa-4fba-876f-79442c336e12</DeploymentId>\r\n </User>\r\n <Account>\r\n <AccountType>email</AccountType>\r\n <Action>settings</Action>\r\n <MicrosoftOnline>False</MicrosoftOnline>\r\n <Protocol>\r\n <Type>EXCH</Type>\r\n <Server>9dd010c4-db51-45e2-a8b8-1d37b45950ef@[domain_name]</Server>\r\n <ServerDN>/o=Wind/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=9dd010c4-db51-45e2-a8b8-1d37b45950ef@[domain_name]</ServerDN>\r\n <ServerVersion>73C186B1</ServerVersion>\r\n <MdbDN>/o=Wind/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=9dd010c4-db51-45e2-a8b8-1d37b45950ef@[domain_name]/cn=Microsoft Private MDB</MdbDN>\r\n <PublicFolderServer>[public_server]</PublicFolderServer>\r\n <AD>DCIVWR07.[domain_name]</AD>\r\n <ASUrl>https://[public_server_name]/EWS/Exchange.asmx</ASUrl>\r\n <EwsUrl>https://[public_server_name]/EWS/Exchange.asmx</EwsUrl>\r\n <EmwsUrl>https://[public_server_name]/EWS/Exchange.asmx</EmwsUrl>\r\n <SharingUrl>https://[public_server_name]/EWS/Exchange.asmx</SharingUrl>\r\n <EcpUrl>https://[public_server_name]/owa/</EcpUrl>\r\n <EcpUrl-um>?path=/options/callanswering</EcpUrl-um>\r\n <EcpUrl-aggr>?path=/options/connectedaccounts</EcpUrl-aggr>\r\n <EcpUrl-mt>options/ecp/PersonalSettings/DeliveryReport.aspx?rfr=olk&exsvurl=1&IsOWA=<IsOWA>&MsgID=<MsgID>&Mbx=<Mbx>&realm=[realm]</EcpUrl-mt>\r\n <EcpUrl-ret>?path=/options/retentionpolicies</EcpUrl-ret>\r\n <EcpUrl-sms>?path=/options/textmessaging</EcpUrl-sms>\r\n <EcpUrl-photo>?path=/options/myaccount/action/photo</EcpUrl-photo>\r\n <EcpUrl-tm>options/ecp/?rfr=olk&ftr=TeamMailbox&exsvurl=1&realm=[realm]</EcpUrl-tm>\r\n <EcpUrl-tmCreating>options/ecp/?rfr=olk&ftr=TeamMailboxCreating&SPUrl=<SPUrl>&Title=<Title>&SPTMAppUrl=<SPTMAppUrl>&exsvurl=1&realm=[realm]</EcpUrl-tmCreating>\r\n <EcpUrl-tmEditing>options/ecp/?rfr=olk&ftr=TeamMailboxEditing&Id=<Id>&exsvurl=1&realm=[realm]</EcpUrl-tmEditing>\r\n <EcpUrl-extinstall>?path=/options/manageapps</EcpUrl-extinstall>\r\n <OOFUrl>https://[public_server_name]/EWS/Exchange.asmx</OOFUrl>\r\n <UMUrl>https://[public_server_name]/EWS/UM2007Legacy.asmx</UMUrl>\r\n <OABUrl>https://[public_server_name]/OAB/95ecfb44-4ba6-46e0-88b1-8a6622de13e8/</OABUrl>\r\n <ServerExclusiveConnect>off</ServerExclusiveConnect>\r\n </Protocol>\r\n <Protocol>\r\n <Type>EXPR</Type>\r\n <Server>[public_server_name]</Server>\r\n <SSL>On</SSL>\r\n <AuthPackage>Ntlm</AuthPackage>\r\n <ASUrl>https://[public_server_name]/EWS/Exchange.asmx</ASUrl>\r\n <EwsUrl>https://[public_server_name]/EWS/Exchange.asmx</EwsUrl>\r\n <EmwsUrl>https://[public_server_name]/EWS/Exchange.asmx</EmwsUrl>\r\n <SharingUrl>https://[public_server_name]/EWS/Exchange.asmx</SharingUrl>\r\n <EcpUrl>https://[public_server_name]/owa/</EcpUrl>\r\n <EcpUrl-um>?path=/options/callanswering</EcpUrl-um>\r\n <EcpUrl-aggr>?path=/options/connectedaccounts</EcpUrl-aggr>\r\n <EcpUrl-mt>options/ecp/PersonalSettings/DeliveryReport.aspx?rfr=olk&exsvurl=1&IsOWA=<IsOWA>&MsgID=<MsgID>&Mbx=<Mbx>&realm=[realm]</EcpUrl-mt>\r\n <EcpUrl-ret>?path=/options/retentionpolicies</EcpUrl-ret>\r\n <EcpUrl-sms>?path=/options/textmessaging</EcpUrl-sms>\r\n <EcpUrl-photo>?path=/options/myaccount/action/photo</EcpUrl-photo>\r\n <EcpUrl-tm>options/ecp/?rfr=olk&ftr=TeamMailbox&exsvurl=1&realm=[realm]</EcpUrl-tm>\r\n <EcpUrl-tmCreating>options/ecp/?rfr=olk&ftr=TeamMailboxCreating&SPUrl=<SPUrl>&Title=<Title>&SPTMAppUrl=<SPTMAppUrl>&exsvurl=1&realm=[realm]</EcpUrl-tmCreating>\r\n <EcpUrl-tmEditing>options/ecp/?rfr=olk&ftr=TeamMailboxEditing&Id=<Id>&exsvurl=1&realm=[realm]</EcpUrl-tmEditing>\r\n <EcpUrl-extinstall>?path=/options/manageapps</EcpUrl-extinstall>\r\n <OOFUrl>https://[public_server_name]/EWS/Exchange.asmx</OOFUrl>\r\n <UMUrl>https://[public_server_name]/EWS/UM2007Legacy.asmx</UMUrl>\r\n <OABUrl>https://[public_server_name]/OAB/95ecfb44-4ba6-46e0-88b1-8a6622de13e8/</OABUrl>\r\n <ServerExclusiveConnect>on</ServerExclusiveConnect>\r\n <CertPrincipalName>msstd:wmae.[cert].it</CertPrincipalName>\r\n <EwsPartnerUrl>https://[public_server_name]/EWS/Exchange.asmx</EwsPartnerUrl>\r\n <GroupingInformation>STMOLFETTA</GroupingInformation>\r\n </Protocol>\r\n <Protocol>\r\n <Type>WEB</Type>\r\n <Internal>\r\n <OWAUrl AuthenticationMethod="Basic,Fba">https://[public_server_name]/owa/</OWAUrl>\r\n <Protocol>\r\n <Type>EXCH</Type>\r\n <ASUrl>https://[public_server_name]/EWS/Exchange.asmx</ASUrl>\r\n </Protocol>\r\n </Internal>\r\n <External>\r\n <OWAUrl AuthenticationMethod="Fba">https://[public_server_name]/owa/</OWAUrl>\r\n <Protocol>\r\n <Type>EXPR</Type>\r\n <ASUrl>https://[public_server_name]/EWS/Exchange.asmx</ASUrl>\r\n </Protocol>\r\n </External>\r\n </Protocol>\r\n </Account>\r\n </Response>\r\n</Autodiscover>'
2020-09-04 10:12:24 DEBUG No retry: wrong status code 200
2020-09-04 10:12:24 DEBUG Session 29854 thread 140450161141504: Useful response from https://[server_name]/Autodiscover/Autodiscover.xml
2020-09-04 10:12:24 DEBUG Server [server_name]: Releasing session 29854
2020-09-04 10:12:24 INFO Step 5: Checking response
2020-09-04 10:12:24 DEBUG Released autodiscover_cache_lock
2020-09-04 10:12:24 DEBUG Waiting for _protocol_cache_lock
2020-09-04 10:12:24 DEBUG Protocol __call__ cache miss. Adding key '('https://[public_server_name]/EWS/Exchange.asmx',Credentials('[domain]\[user]','********'))'
2020-09-04 10:12:24 DEBUG Requesting b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><s:Header><t:RequestServerVersion Version="Exchange2019"/></s:Header><s:Body><m:ResolveNames ReturnFullContactData="false"><m:UnresolvedEntry>[domain]\[user]</m:UnresolvedEntry></m:ResolveNames></s:Body></s:Envelope>' from https://[public_server_name]/EWS/Exchange.asmx
2020-09-04 10:12:24 DEBUG Trying to get service auth type for https://[public_server_name]/EWS/Exchange.asmx
2020-09-04 10:12:24 DEBUG Starting new HTTPS connection (1): [public_server_name]:443
2020-09-04 10:12:24 DEBUG https://[public_server_name]:443 "POST /EWS/Exchange.asmx HTTP/1.1" 401 0
2020-09-04 10:12:24 DEBUG Request headers: {'User-Agent': 'exchangelib/3.2.0 (python-requests/2.24.0)','Connection': 'keep-alive','Content-Length': '466'}
2020-09-04 10:12:24 DEBUG Response headers: {'Server': 'Microsoft-IIS/8.5','WWW-Authenticate': 'Negotiate,NTLM','request-id': '5035ba0e-5caf-4b3d-8c39-07f76e04a0da','X-FEServer': 'WIVEX02',04 Sep 2020 10:12:24 GMT','Content-Length': '0'}
2020-09-04 10:12:24 DEBUG Auth type is NTLM
2020-09-04 10:12:24 DEBUG Server [public_server_name]: Created session 25722
2020-09-04 10:12:24 DEBUG Added account: [account_mail]
KO日志:
2020-09-04 09:58:47 DEBUG Waiting for autodiscover_cache lock
2020-09-04 09:58:47 DEBUG autodiscover_cache lock acquired
2020-09-04 09:58:47 DEBUG Server [server_name]: Created session 26384
2020-09-04 09:58:47 DEBUG Cache hit for key ([domain_name],'********')): https://[server_name]/Autodiscover/Autodiscover.xml
2020-09-04 09:58:47 DEBUG Server [server_name]: Waiting for session
2020-09-04 09:58:47 DEBUG Server [server_name]: Got session 26384
2020-09-04 09:58:47 DEBUG Session 26384 thread 140624867845888: retry 0 timeout 10 POST'ing to https://[server_name]/Autodiscover/Autodiscover.xml after 10s wait
2020-09-04 09:58:47 DEBUG Starting new HTTPS connection (1): [server_name]:443
2020-09-04 09:58:48 DEBUG https://[server_name]:443 "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 401 0
2020-09-04 09:58:48 DEBUG https://[server_name]:443 "POST /Autodiscover/Autodiscover.xml HTTP/1.1" 502 1477
2020-09-04 09:58:48 ERROR KeyError: 'www-authenticate'
Retry: 0
Waited: 10
Timeout: 10
Session: 26384
Thread: 140624867845888
Auth type: <requests_ntlm.requests_ntlm.HttpNtlmAuth object at 0x7fe5c41a37c0>
URL: https://[server_name]/Autodiscover/Autodiscover.xml
HTTP adapter: <requests.adapters.HTTPAdapter object at 0x7fe5c41a36d0>
Allow redirects: False
Streaming: False
Response time: 0.3348593030000302
Status code: 503
Request headers: {'Content-Type': 'text/xml; charset=utf-8',deflate'}
Response headers: {}
Request data: b'<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"><Request><EMailAddress>[email_address]</EMailAddress><AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema></Request></Autodiscover>'
Response data: b''
2020-09-04 09:58:48 DEBUG Server [server_name]: Retiring session 26384
2020-09-04 09:58:48 DEBUG Server [server_name]: Created session 26493
2020-09-04 09:58:48 DEBUG Server [server_name]: Releasing session 26493
请,有人可以帮我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)