小编Elw*_*iss的帖子

exchangelib - 自动发现协议中的所有步骤都失败了

我在python中使用exchangelib时遇到问题.我试试这个示例代码:

from exchangelib import DELEGATE, Account, Credentials

creds = Credentials(
    username='xxxx\\username', 
    password="mypassword"
)

account = Account(
    primary_smtp_address='surname.name@xxxx.fr',
    credentials=creds, 
    autodiscover=True, 
    access_type=DELEGATE
)

# Print first 10 inbox messages in reverse order
for item in account.inbox.all().order_by('-datetime_received')[:10]:
    print(item.subject, item.body, item.attachments)

Run Code Online (Sandbox Code Playgroud)

我尝试了不同的用户名但没有任何作用,我总是有相同的错误消息: AutoDiscoverFailed: All steps in the autodiscover protocol failed

顺便说一句,以防万一它可以提供帮助,我试图使用为C#编码的Exchange Web服务,它可以完美地使用这些信用卡,我可以发送邮件:

static void Main(string[] args)
{
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
    // The last parameter is the domain name
    service.Credentials = new WebCredentials("username", "password", "xxxx.lan");
    service.AutodiscoverUrl("surname.name@xxxx.fr", RedirectionUrlValidationCallback);
    EmailMessage email = new EmailMessage(service);
    email.ToRecipients.Add("surname.name@xxxx.fr"); …
Run Code Online (Sandbox Code Playgroud)

python exchange-server exchangewebservices office365 exchangelib

7
推荐指数
1
解决办法
5129
查看次数

exchangelib上的SSLError:无法在服务器上连接

我对exchangelib有问题。这是我的代码:

creds = Credentials(
username="domain_name\\username", 
password="password")

config = Configuration(server='mail.solutec.fr', credentials=creds)

account = Account(
primary_smtp_address="surname.name@lab-solutec.fr",
autodiscover=False, 
config = config,
access_type=DELEGATE)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

SSLError: HTTPSConnectionPool(host='mail.solutec.fr', port=443): Max retries exceeded with url: /EWS/Exchange.asmx (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),))
Run Code Online (Sandbox Code Playgroud)

我可以通过添加以下内容使其起作用:

from exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapter
BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter
Run Code Online (Sandbox Code Playgroud)

但这只是绕过安全性,所以这不是我们想要的。如果我使用手机的共享连接,则没有错误,因此看来我的企业代理存在问题。我看到了有关传输适配器的信息,但并不太了解如何使其工作。

因此,如果没有此绕过解决方案,如何使它正常工作?

谢谢 !

python proxy enterprise ssl-certificate exchangelib

5
推荐指数
1
解决办法
2726
查看次数