Python API¶
Outlook.Application¶
-
class
RPA.Outlook.Application.
Application
(autoexit: bool = True)¶ Bases:
object
Outlook.Application is a library for controlling the Outlook application.
About Email Filtering
Emails can be filtered according to specification set by Restrict method of the Item class https://docs.microsoft.com/en-us/office/vba/api/outlook.items.restrict.
Couple of examples:
Get Emails ... email_filter=[Subject]='test email' Move Emails ... email_filter=[SenderEmailAddress]='hello@gmail.com'
Examples
Robot Framework
*** Settings *** Library RPA.Outlook.Application Task Setup Open Application Suite Teardown Quit Application *** Variables *** ${RECIPIENT} address@domain.com *** Tasks *** Send message Send Message recipients=${RECIPIENT} ... subject=This is the subject ... body=This is the message body .. attachments=approved.png
Python
from RPA.Outlook.Application import Application def send_message(): app = Application() app.open_application() app.send_message( recipients='EMAILADDRESS_1, EMAILADDRESS_2', subject='email subject', body='email body message', attachments='../orders.csv'
For more information, see: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/bb219950(v=office.12)
-
ROBOT_LIBRARY_DOC_FORMAT
= 'REST'¶
-
ROBOT_LIBRARY_SCOPE
= 'GLOBAL'¶
-
close_document
(save_changes: bool = False) → None¶ Close the active document (if open).
- Parameters
save_changes – if changes should be saved on close, default False
-
get_emails
(account_name: str = None, folder_name: str = None, email_filter: str = None, save_attachments: bool = False, attachment_folder: str = None, sort: bool = False, sort_key: str = None, sort_descending: bool = True) → List¶ Get emails from a specified email folder. Can be used to save attachments.
- Parameters
account_name – needs to be given if there are shared accounts in use, defaults to None
folder_name – target folder where to get emails from, default Inbox
email_filter – how to filter email, default no filter, ie. all emails in folder
save_attachments – if attachments should be saved, defaults to False
attachment_folder – target folder where attachments are saved, defaults to current directory
sort – if emails should be sorted, defaults to False
sort_key – needs to be given if emails are to be sorted
sort_descending – set to False for ascending sort, defaults to True
- Returns
list of emails (list of dictionaries)
Example:
${emails}= Get Emails ... email_folder=priority ... email_filter=[Subject]='incoming order' ... save_attachments=True ... attachment_folder=%{ROBOT_ROOT}${/}attachments ... sort=True ... sort_key=Received ... sort_descending=False
-
mark_email_as_read
(email: Any, read: bool = True) → None¶ Mark email ‘read’ property. Can be used to mark email as unread.
- Parameters
email – target email
read – True marks email as Read, False as Unread
Example:
${emails}= Get Emails # Mark all as read FOR ${email} IN @{emails} Mark Email As Read ${email} END # Mark all as unread FOR ${email} IN @{emails} Mark Email As Read ${email} False END
-
move_emails
(account_name: str = None, source_folder: str = None, email_filter: str = None, target_folder: str = None) → bool¶ Move emails from source folder to target folder.
Use of “account_name” is recommended if there are shared accounts in use.
- Parameters
account_name – needs to be given if there are shared accounts in use, defaults to None
source_folder – folder where source emails exist
email_filter – how to filter email, default no filter, ie. all emails in folder
target_folder – folder where emails are moved into
- Returns
True if move operation was success, False if not
Example:
# moving messages from Inbox to target_folder Move Emails ... target_folder=Processed Invoices ... email_filter=[Subject]='incoming invoice' # moving messages from source_folder to target_folder Move Emails ... source_folder=Incoming Invoices ... target_folder=Processed Invoices ... email_filter=[Subject]='incoming invoice'
-
open_application
(visible: bool = False, display_alerts: bool = False) → None¶ Open the Outlook application.
- Parameters
visible – show window after opening, default False
display_alerts – show alert popups, default False
-
quit_application
(save_changes: bool = False) → None¶ Quit the application.
- Parameters
save_changes – if changes should be saved on quit, default False
-
save_email_attachments
(attachments: Any, attachment_folder: str) → None¶ Save email attachments
Note. Keyword “Get Emails” can be also used to save attachments.
- Parameters
attachments – all attachments from email or single attachment
attachment_folder – target folder where attachments are saved, defaults to current directory
Example:
${emails}= Get Emails ... email_folder=priority FOR ${email} IN @{emails} FOR ${attachment} IN @{email}[Attachments] IF ${attachment}[size] < 100000 # bytes Save Email Attachments ... ${attachment} ... ${CURDIR}${/}attachments ELSE IF ".pdf" in "${attachment}[filename]" Save Email Attachments ... ${attachment} ... ${CURDIR}${/}attachments${/}pdf END END END
-
send_email
(recipients: Any, subject: str, body: str, html_body: bool = False, attachments: Any = None) → bool¶ Send email with Outlook
- Parameters
recipients – list of addresses
subject – email subject
body – email body
html_body – True if body contains HTML, defaults to False
attachments – list of filepaths to include in the email, defaults to []
- Returns
True if there were no errors
Example:
Send Email ... recipients=robocorp.tester@gmail.com ... subject=hello from Outlook ... body=empty body ... attachments=${CURDIR}${/}example.xlsx
-
send_message
(recipients: Any, subject: str, body: str, html_body: bool = False, attachments: Any = None) → bool¶ Send message with Outlook
- Parameters
recipients – list of addresses
subject – email subject
body – email body
html_body – True if body contains HTML, defaults to False
attachments – list of filepaths to include in the email, defaults to []
- Returns
True if there were no errors
-
wait_for_email
(criterion: str = None, timeout: float = 5.0, interval: float = 1.0) → Any¶ Wait for email matching criterion to arrive into mailbox.
- Parameters
criterion – email filter to wait for, defaults to “”
timeout – total time in seconds to wait for email, defaults to 5.0
interval – time in seconds for new check, defaults to 1.0
- Returns
list of messages or False
Possible wait criterias are: SUBJECT, SENDER and BODY
Example:
Wait for Email SUBJECT:rpa task calling timeout=300 interval=10
-
wait_for_message
(criterion: str = None, timeout: float = 5.0, interval: float = 1.0) → Any¶ Wait for email matching criterion to arrive into mailbox.
- Parameters
criterion – message filter to wait for, defaults to “”
timeout – total time in seconds to wait for email, defaults to 5.0
interval – time in seconds for new check, defaults to 1.0
- Returns
list of messages or False
Possible wait criterias are: SUBJECT, SENDER and BODY
Example:
Wait for message SUBJECT:rpa task calling timeout=300 interval=10
-
-
RPA.Outlook.Application.
catch_com_error
()¶ Try to convert COM errors to human readable format.