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

Python exchangelib-自动发现协议中的所有步骤均失败,python,office365,exchange-server,exchangewebservices,exchangelib,Python,Office365,Exchange Server,Exchangewebservices,Exchangelib,我在python中使用exchangelib时遇到问题。我尝试以下示例代码: 从exchangelib导入委托、帐户、凭据 信誉=证书( username='xxxx\\username', password=“mypassword” ) 帐户( 主smtp地址=”姓氏。name@xxxx.fr', 证书=信誉, 自动发现=真, 访问类型=委托 ) #按相反顺序打印前10封收件箱邮件 对于account.inbox.all()中的项目。订购人('-datetime_received')[:10]

我在python中使用exchangelib时遇到问题。我尝试以下示例代码:

从exchangelib导入委托、帐户、凭据
信誉=证书(
username='xxxx\\username',
password=“mypassword”
)
帐户(
主smtp地址=”姓氏。name@xxxx.fr',
证书=信誉,
自动发现=真,
访问类型=委托
)
#按相反顺序打印前10封收件箱邮件
对于account.inbox.all()中的项目。订购人('-datetime_received')[:10]:
打印(item.subject、item.body、item.attachments)
我尝试了不同的用户名,但没有任何效果,我始终收到相同的错误消息:

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

顺便说一句,为了以防万一,我尝试使用编码为C#的Exchange Web服务,它与此信条配合得非常好,我可以发送邮件:

static void Main(字符串[]args)
{
ExchangeService服务=新的ExchangeService(ExchangeVersion.Exchange2010_SP2);
//最后一个参数是域名
service.Credentials=新的WebCredentials(“用户名”、“密码”、“xxxx.lan”);
服务。自动发现URL(“姓氏。name@xxxx.fr,重定向UrlValidationCallback);
EmailMessage email=新的EmailMessage(服务);
email.ToRecipients.Add(“姓氏。name@xxxx.fr");
email.Subject=“salt”;
email.Body=newmessagebody(“corps du message”);
email.Send();
}
私有静态bool重定向UrlValidationCallback(字符串重定向Url)
{
//验证回调的默认值是拒绝URL。
布尔结果=假;
Uri redirectionUri=新Uri(redirectionUrl);
/*验证重定向URL的内容
如果使用HTTPS,则重定向URL被视为有效
加密身份验证凭据*/
if(redirectionUri.Scheme==“https”)
{
结果=真;
}
返回结果;
}

提前谢谢

我最终成功地完成了此配置:

从exchangelib导入委托、帐户、凭据、配置
信誉=证书(
username=“域名\\用户名”,
password=“password”
)
config=Configuration(server='mail.solutec.fr',credentials=creds)
帐户(
主smtp地址=“我的电子邮件地址”,
自动发现=错误,
config=config,
访问类型=委托
)
对于那些有同样问题的人,你可以通过右键点击“计算机”和属性找到你的域名。 例如,用户名和密码就是用于连接公司邮箱的用户名和密码。对于配置中的服务器,对于我来说,这一个是有效的:“mail.solutec.fr”,其中solutec是我公司的名称,fr是法国的名称

看起来这个自动发现的家伙真的不喜欢我^^


无论如何,谢谢你的帮助,祝你有一个愉快的一天

在自动发现协商过程中,exchangelib无法选择正确的服务器。不幸的是,自动发现非常复杂和脆弱,因此有很多事情可能出错。您可以在exchangelib中打开调试信息,并将输出中的步骤与来自Feel free的报告进行比较,如果您发现exchangelib的问题所在,则可以针对exchangelib提出问题。如果您在“xxxx.fr”后面透露了实际的域名,您甚至可能会找人帮您调试。查找正确服务器的算法不需要凭据.requests.exceptions.SSLError:HTTPSConnectionPool(host='xyz',port=443):url:/EWS/Exchange.asmx超过了最大重试次数(由SSLError引起(SSLError(“错误握手:错误([('SSL例程','ssl3_获取服务器_证书','certificate verify failed')]))@蛇怪B:谢谢你的关心,它现在正在工作,我很快就会分享最新的代码。导致这一切正常工作的代码片段是-BaseProtocol.HTTP_ADAPTER_CLS=noverifyhttpadapter我无法为我的用例找到特定的服务器。你能告诉我你是如何使用mail.solutec.fr的吗?