Quick Start¶
Instantiation¶
pyOutlook interacts with Outlook messages and folders through the class OutlookAccount(). The OutlookAccount acts as a gatekeeper to the other methods available, and stores the access token associated with an account.
Instantiation Example:
from pyOutlook import OutlookAccount
account_one = OutlookAccount('token 1')
account_two = OutlookAccount('token 2')
From here you can access any of the methods as documented in the pyOutlook section. Here are two examples of accessing an inbox and sending a new email.
Examples¶
Retrieving Emails¶
Through the OutlookAccount class you can call one of many methods - get_messages()
, inbox()
, etc.
These methods return a list of Message objects, allowing you to access the attributes therein.
inbox = account.inbox()
inbox[0].body
>>> 'A very fine body'
Sending Emails¶
As above, you can send emails through the OutlookAccount class. There are two methods for sending emails - one allows chaining of methods and the other takes all arguments upfront and immediately sends.
Message¶
You can create an instance of a Message
and then send from there.
from pyOutlook import *
# or from pyOutlook.core.message import Message
account = OutlookAccount('token')
message = Message(account, 'A body', 'A subject', [Contact('to@email.com')])
message.attach(bytes('some bytes', 'utf-8'), 'bytes.txt')
message.send()
new_email()¶
This returns a Message
instance.
body = 'I\'m sending an email through Python. <br> Best, <br>Me'
email = account.new_email(body=body, subject='Hey there', to=Contact('myemail@domain.com'))
email.sender = Contact('some_other_account@email.com')
email.send()
Note that HTML formatting is accepted in the message body.
Contacts¶
All recipients, and the sender attribute, in Messages
are represented by
Contacts
. Right now, this allows you to retrieve the name of a recipient,
if provided by Outlook.
message = account.inbox()[0]
message.sender.name
>>> 'Dude'
When providing recipients to Message
you can provide them either as a list
of strings, or a list of Contacts
. I prefer the latter, as there are further
options in the Outlook API for interacting with Contacts - functionality for those may be added in the future.