Outlook 365
Jump to navigation
Jump to search
smtp.office365.com
Account scopes = ["IMAP.AccessAsUser.All", "POP.AccessAsUser.All", "SMTP.Send", "Mail.Send", "offline_access"] account = Account(credentials=('client_id_of_azureapp', 'client_secret_of_azureapp')) result = account.authenticate(scopes=scopes) # request a token for this scopes Use below script to send email by providing the authtoken file generated in previous step. from O365 import Account from O365.utils.token import FileSystemTokenBackend tk = FileSystemTokenBackend(token_path=".", token_filename="o365_token.txt") credentials = ('client_id', 'client_secret') account = Account(credentials, auth_flow_type = 'public',token_backend=tk) m = account.new_message() m.to.add('user@company.com') m.subject = 'Testing!' m.body = "George Best quote: I've stopped drinking, but only while I'm asleep." m.send() Note: If you have admin consent or you are administrator or azure account you can skip the step 4,5,6 and use below code directly. from O365 import Account from O365.utils.token import FileSystemTokenBackend tk = FileSystemTokenBackend(token_path=".", token_filename="o365_token.txt") credentials = ('client_id', 'client_secret') # from step 2,3 account = Account(credentials, auth_flow_type = 'credentials', tenant_id="your_app_tenant_id") # tenant_id (required) available just below client_id in azure if account.authenticate(): print('Authenticated!') mailbox = account.mailbox("user@company.com") # Your email (required) from which you want to send email (your app should have permission to this email) m = mailbox.new_message() m.to.add('touser@company.com') m.subject = 'Testing!' m.body = "George Best quote: I've stopped drinking, but only while I'm asleep." m.send()