<p>终于为我工作了</p>
<pre><code>from requests_kerberos import HTTPKerberosAuth
from exchangelib import DELEGATE, Account, Credentials, Configuration
import exchangelib.autodiscover
def auth_model(**kwargs):
#get kerberos ticket
return HTTPKerberosAuth()
def connect(server, email, username, password=1):
from exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapter
# Care! Ignor Exchange self-signed SSL cert
BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter
# fill Credential object with empty fields
creds = Credentials(
username="",
password=""
)
# add kerberos as GSSAPI auth_type
exchangelib.transport.AUTH_TYPE_MAP["GSSAPI"] = auth_model
# Create Config
config = Configuration(server=server,credentials=creds, auth_type="GSSAPI")
# return result
return Account(primary_smtp_address=email, autodiscover=False, config = config, access_type=DELEGATE)
def main():
# Connection details
server = 'mail.domain.ex'
email = 'person@domain.ex'
username = 'domain\person'
account = connect(server, email, username)
for item in account.inbox.all().order_by('-datetime_received')[:100]:
print(item.subject, item.sender, item.datetime_received)
main()
</code></pre>