Désolé pour mon anglais ne pas être si bien: Dans un domaine Windows je tente de se connecter à notre exchangeserver (2010/SP3) en utilisant l'exemple donné sur le site pypi:Python/exchangelib - ne peut pas établir une connexion
from exchangelib import DELEGATE, NTLM, Account, Credentials, Configuration
import os, logging
logging.basicConfig(level=logging.DEBUG)
creds = Credentials(
username='mydomain\\my.name',
password='mypassword')
config = Configuration(server='exchange.xxx.local/EWS/Exchange.asmx', credentials=creds)
account = Account(
primary_smtp_address='[email protected]',
credentials=creds,
autodiscover=False,
access_type=DELEGATE)
for item in account.inbox.all().order_by('-datetime_received')[:30]:
print(item.subject, item.body, item.attachments)
Après avoir démarré le script, je reçois cette sortie dans la console python:
DEBUG:exchangelib.protocol:Waiting for _protocol_cache_lock
DEBUG:exchangelib.protocol:Protocol __call__ cache miss. Adding key '('https://exchange.xxx.local/EWS/Exchange.asmx', Credentials('mydomain\\my.name', '********'), True)'
DEBUG:exchangelib.transport:Getting service auth type for https://exchange.xxx.local/EWS/Exchange.asmx
DEBUG:exchangelib.transport:Requesting b'<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><s:Header><t:RequestServerVersion Version="Exchange2016" /></s:Header><s:Body><m:ResolveNames ReturnFullContactData="false"><m:UnresolvedEntry>mydomain\\my.name</m:UnresolvedEntry></m:ResolveNames></s:Body></s:Envelope>' from https://exchange.xxx.local/EWS/Exchange.asmx
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): exchange.xxx.local
Traceback (most recent call last):
File "C:\CWS\Python-venv\p353-01\lib\site-packages\urllib3\connectionpool.py", line 594, in urlopen
self._prepare_proxy(conn)
File "C:\CWS\Python-venv\p353-01\lib\site-packages\urllib3\connectionpool.py", line 810, in _prepare_proxy
conn.connect()
File "C:\CWS\Python-venv\p353-01\lib\site-packages\urllib3\connection.py", line 294, in connect
self._tunnel()
File "C:\seProg\python353\Lib\http\client.py", line 832, in _tunnel
message.strip()))
OSError: Tunnel connection failed: 407 Proxy Access Denied
... (and many more lines with error messages)
J'ai essayé aussi les autres options du site exchangelib avec autodiscover = True et que creds = donnée (sans config =). Sans succès. J'ai ensuite installé l'EWS-Editor de https://ewseditor.codeplex.com/ afin de voir, si la connexion via EWS peut fonctionner du tout dans l'environnement de mon entreprise. Cela fonctionne bien avec cet outil, il suffit de lui donner mon adresse SMTP.
J'apprécierais beaucoup toute aide. Merci d'avance!
Merci - J'ai essayé votre première suggestion, mais je n'ai pas travaillé (en second lieu, je ne sais pas comment construire la classe HTTPAdapter) . D'après mes admins Exchange et réseau, il ne s'agit pas d'un problème de proxy, car l'utilisation de proxy n'est pas nécessaire dans le trafic interne (domain-): Exception pour toutes les adresses telles que: * .xxx.local. Notre serveur de bourse est "exchange.xxx.local". J'ai testé cela en utilisant la bibliothèque de requêtes avec un simple 'r = requests.get ('http: //exchange.xxx.local')' et ça a marché! Donc, aucune utilisation de proxy nécessaire - j'apprécierais un autre indice! – Chessyman
Le test 'requests.get ('http: //exchange.xxx.local')' ne touche pas le chemin du code TLS, où l'erreur se produit. Essayez avec 'requests.get ('https: //exchange.xxx.local/EWS/Exchange.asmx')' à la place. Sinon, vous pouvez essayer la section de dépannage à https://github.com/ecederstrand/exchangelib#troubleshooting –