RPA.Outlook.Application

Close the active document and app (if open).

Arguments

ArgumentTypeDefault value
save_changesboolFalse
param save_changes:Enable changes saving on quit. (False by default)

Get emails from a specified email folder. Can be used to save attachments.

Arguments

ArgumentTypeDefault value
account_namestr, NoneNone
folder_namestr, NoneNone
email_filterstr, NoneNone
save_attachmentsboolFalse
attachment_folderstr, NoneNone
sortboolFalse
sort_keystr, NoneNone
sort_descendingboolTrue
param account_name:needs to be given if there are shared accounts in use, defaults to None
param folder_name:target folder where to get emails from, default Inbox
param email_filter:how to filter email, default no filter, ie. all emails in folder
param save_attachments:if attachments should be saved, defaults to False
param attachment_folder:target folder where attachments are saved, defaults to current directory
param sort:if emails should be sorted, defaults to False
param sort_key:needs to be given if emails are to be sorted
param sort_descending:set to False for ascending sort, defaults to True
return:list of emails (list of dictionaries)

Usage

${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 'read' property. Can be used to mark email as unread.

Arguments

ArgumentTypeDefault value
emailAnynull
readboolTrue
param email:target email
param read:True marks email as Read, False as Unread

Usage

${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 from source folder to target folder.

Arguments

ArgumentTypeDefault value
account_namestr, NoneNone
source_folderstr, NoneNone
email_filterAny, NoneNone
target_folderstr, NoneNone
mark_as_readboolTrue

Use of "account_name" is recommended if there are shared accounts in use.

param account_name:needs to be given if there are shared accounts in use, defaults to None
param source_folder:folder where source emails exist
param email_filter:how to filter email, default no filter, ie. all emails in folder
param target_folder:folder where emails are moved into
param mark_as_read:mark emails as read after move, defaults to True
return:True if move operation was success, False if not

Python example.

outlook = RPA.Outlook.Application() # moving messages from Inbox to target_folder outlook.move_emails( target_folder='Processed Invoices', email_filter="[Subject]='incoming invoice'" ) # moving messages from source_folder to target_folder outlook.move_emails( source_folder='Incoming Invoices', target_folder='Processed Invoices', email_filter="[Subject]='incoming invoice'" ) # move message objects from get_emails result emails = outlook.get_emails("[Subject]='incoming invoice'") outlook.move_emails( target_folder='Processed Invoices', email_filter=emails )

Robot Framework 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' # moving message objects from Get Emails result ${emails}= Get Emails [Subject]='incoming invoice' Move Emails ... target_folder=Processed Invoices ... email_filter=${emails}

Open the application.

Arguments

ArgumentTypeDefault value
visibleboolFalse
display_alertsboolFalse
param visible:Show the window on opening. (False by default)
param display_alerts:Display alert popups. (False by default)

Quit the application.

Arguments

ArgumentTypeDefault value
save_changesboolFalse
param save_changes:Enable to save changes on quit. (False by default)

Save email attachments.

Arguments

ArgumentTypeDefault value
attachmentsAnynull
attachment_folderstrnull
overwriteboolFalse

Note. Keyword "Get Emails" can be also used to save attachments.

param attachments:all attachments from email or single attachment
param attachment_folder:target folder where attachments are saved, defaults to current directory
param overwrite:overwrite existing file if True, defaults to False

Usage

${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 with Outlook

Arguments

ArgumentTypeDefault value
recipientsstr, List[str]null
subjectstrnull
bodystrnull
html_bodyboolFalse
attachmentsstr, List[str], NoneNone
save_as_draftboolFalse
cc_recipientsstr, List[str], NoneNone
bcc_recipientsstr, List[str], NoneNone
reply_tostr, List[str], NoneNone
check_namesboolFalse
param recipients:list of addresses
param subject:email subject
param body:email body
param html_body:True if body contains HTML, defaults to False
param attachments:list of filepaths to include in the email, defaults to []
param save_as_draft:email is saved as draft when True
param cc_recipients:list of addresses for CC field, default None
param bcc_recipients:list of addresses for BCC field, default None
param reply_to:list of addresses for changing email's reply-to field, default None
param check_names:all recipients are checked if the email address is recognized on True, default False
return:True if there were no errors

Usage

library = Outlook() library.open_application() cc_recipients = ["recipient3@domain.com","recipient4@domain.com"] library.send_email( recipients="recipient1@domain.com", cc_recipients=cc_recipients, bcc_recipients="recipient3@domain.com;recipient4@domain.com", subject="hello from Outlook", body="empty body", attachments=os.path.join(os.path.curdir, "example.xslx") )
${cc}= Create List recipient3@domain.com recipient4@domain.com Send Email ... recipients=recipient1@domain.com ... cc_repients=${cc} ... bcc_repients=recipient5@domain.com;recipient6@domain.com ... subject=hello from Outlook ... body=empty body ... attachments=${CURDIR}${/}example.xlsx

Set the property of any object.

Arguments

ArgumentTypeDefault value
object_instancenull
property_namestrnull
valuestrnull

This is a utility keyword for Robot Framework syntax to set object property values.

${new_value}= Replace String ${value} 10.132. 5511.11. Set Object Property ${result} Value ${new_value}
param object_instance:object instance to set the property
param property_name:property name to set
param value:value to set

Wait for email matching criterion to arrive into mailbox.

Arguments

ArgumentTypeDefault value
criterionstr, NoneNone
timeoutfloat5.0
intervalfloat1.0
param criterion:email filter to wait for, defaults to ""
param timeout:total time in seconds to wait for email, defaults to 5.0
param interval:time in seconds for new check, defaults to 1.0
return:list of messages or False

Possible wait criterias are: SUBJECT, SENDER and BODY

Usage

Wait for Email SUBJECT:rpa task calling timeout=300 interval=10