gpt4 book ai didi

python - exchangelib - 自动发现协议(protocol)中的所有步骤均失败

转载 作者:太空狗 更新时间:2023-10-29 22:24:42 27 4
gpt4 key购买 nike

我在 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)

我尝试了不同的用户名,但没有任何效果,而且我总是收到相同的错误消息:

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");
email.Subject = "salut ";
email.Body = new MessageBody("corps du message");
email.Send();
}

private static bool RedirectionUrlValidationCallback(string redirectionUrl)
{
// The default for the validation callback is to reject the URL.
bool result = false;

Uri redirectionUri = new Uri(redirectionUrl);

/* Validate the contents of the redirection URL. In this simple validation
callback, the redirection URL is considered valid if it is using HTTPS
to encrypt the authentication credentials. */
if (redirectionUri.Scheme == "https")
{
result = true;
}
return result;
}

提前致谢!

最佳答案

我终于通过这个配置成功了:

from exchangelib import DELEGATE, Account, Credentials, Configuration

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

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

account = Account(
primary_smtp_address="my email address",
autodiscover=False,
config=config,
access_type=DELEGATE
)

对于那些会遇到同样问题的人,您可以通过右键单击“计算机”和“属性”来找到您的域名。例如,用户名和密码是您用来连接公司邮箱的用户名和密码。对于配置中的服务器,对我来说,这个有效:“mail.solutec.fr”,其中 solutec 是我公司的名称,fr 是法国的名称。

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

无论如何感谢您的帮助,祝您有美好的一天!

关于python - exchangelib - 自动发现协议(protocol)中的所有步骤均失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com