Pythonでexchangelibを使用する際に問題が発生しました。このサンプルコードを試してみます:
from exchangelib import DELEGATE, Account, Credentials
creds = Credentials(
username='xxxx\\username',
password="mypassword"
)
account = Account(
primary_smtp_address='[email protected]',
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("[email protected]", RedirectionUrlValidationCallback);
EmailMessage email = new EmailMessage(service);
email.ToRecipients.Add("[email protected]");
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
)
同じ問題が発生する場合は、[コンピュータ]と[プロパティ]を右クリックしてdomain_nameを見つけることができます。ユーザー名とパスワードは、たとえば会社のメールボックスに接続するために使用するものです。構成内のサーバーの場合、これは機能します: "mail.solutec.fr".
この自動発見の男は本当に私を好きではないようです^^
とにかくあなたの助けに感謝し、良い一日を!