Jump to content

OutlookEX UDF - Help & Support (IV)


water
 Share

Recommended Posts

#include <OutlookEX.au3>
Global $aItemProperties
Global $oOutlook = _OL_Open()
$aFolder = _OL_FolderAccess($oOutlook, "", $olFolderToDo)
Global $aResult = _OL_ItemFind($oOutlook, $aFolder[1], $olTask, "", "", "", "EntryID")
For $i = 1 To $aResult[0][0]
    $aItemProperties = _OL_ItemGet($oOutlook, $aResult[$i][0], Default, "")
    ; Process all properties of the item here
Next
_OL_Close($oOutlook)

How do you want to write the properties to a file? Which format?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

At this point, I don't know if I'll use a text file with TABs or a SQLite database.

Currently, I just want to use a MsgBox to display the columns (properties) for a given record.

The MsgBox is empty:

For $i = 1 To 5
    $aItemProperties = _OL_ItemGet($oOutlook, $aResult[$i][0], Default, "")
    ; Process all properties of the item here
    MsgBox($MB_SYSTEMMODAL, "Item", $aItemProperties)
Next

Is $aItemProperties an array?

Edited by littlebigman
Link to comment
Share on other sites

You need to use _ArrayDisplay as _OL_Itemget returns an array!

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

For $i = 1 To 5
    $aItemProperties = _OL_ItemGet($oOutlook, $aResult[$i][0], Default, "")
    _ArrayDisplay($aItemProperties) ; Display all properties of an item
    $sString = _ArrayToString($aItemProperties) ; Convert the array to a string
    MsgBox(0, "Properties", $sString) ; Display the string
Next

Displays all properties of a single item as an array and as a string.
As you can see each property (= each row of the array) has three values (=columns): name, value and typ of the property.
 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

  • 2 weeks later...

Hello,

Sorry, I didn't figure out how to only find posts related to OutlookEX that deal with the Notes folder.

I'd like to read all the items from the Notes section:

1. The Wiki only mentions "$olAppointment, $olContact, $olMail, and $olTask" for _OL_ItemFind().

2. Generally speaking, is there a document that lists the available columns that can be fetched from Outlook, eg. Subject, Body, LastModificationTime for Tasks ?

Thank you.

Link to comment
Share on other sites

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

  • 3 weeks later...

Hi Water. Thanks so much for the UDFs you have created- they have been immensly useful in my own projects. Kudos.

I have a quick question about your OutlookEx UDF:

Can it be made to return a complete list (as CSV) of someones calendar (who has shared "Full details" with me).

Currently I display those calendars in Grid view (Like a spreadsheet) and send CTRL A, CTRL C to those windows to capture all the appointments. I get the DATE, START TIME, END TIME and LOCATION fields (to extract postcodes to pass to a Routing API).

The main difficulty is that this method blocks the user imput while it is doing th CTRL A , CTRL C on multiple calendars, so was considering to use this UDF (Preferably, if that functionality is possible), or alternatively run an instance of Outlook in a virtual machine to prevent blocking the user input while capturing the details.

I hope all this makes sense... Thanks again,

Glumbler.

Link to comment
Share on other sites

Should be possible. Will have a look as soon as I return from vacation next week 😃

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

@glumbler Maybe something like this:
Change: "Shared User Account Name" to User Account that has shared the Calendar.

#include <OutlookEX.au3>

Global $oOutlook = _OL_Open()
Global $sFileOpen = @ScriptDir & "\FileName.csv"
Global $hFileOpen = FileOpen($sFileOpen, 2)
Global $sFileItem

Global $aCalendar = _OL_FolderAccess($oOutlook, "\\Shared User Account Name\", $olFolderCalendar)

For $oCalendar In $aCalendar[1].Items
    $sFileItem = '"' & $oCalendar.Subject & '","' & _DateTime($oCalendar.Start) & '","' & _DateTime($oCalendar.End) & '","' & $oCalendar.Location & '"'
    FileWrite($hFileOpen, $sFileItem & @CRLF)
    ConsoleWrite($sFileItem & @CRLF)
Next
ShellExecute($sFileOpen)

Func _DateTime($_sDateTime)
    Return StringFormat("%02d/%02d/%4d %02d:%02d:%02d", StringMid($_sDateTime, 5, 2), StringMid($_sDateTime, 7, 2), StringLeft($_sDateTime, 4), StringMid($_sDateTime, 9, 2), StringMid($_sDateTime, 11, 2), StringRight($_sDateTime, 2))
EndFunc

 

Link to comment
Share on other sites

Hi Water,

I am trying to send an encrypted email. It all works great , but if the recipient dosnt have certificates, the script is paused on .Send and a outlook box ask if you want to cancel or send the mail unencrypted. How can i fix that?

encryption-problems.png

Link to comment
Share on other sites

Will have a look on Monday when I return to my office 😃

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Can you please post the part of your script where you encrypt the mail?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Here it is:

With $OutMail
                    .To = $CmdLine[1]
                    .Subject = $CmdLine[2]
                    .Body = $sFileRead
;~                     1=encrypt 2=sign 3=both
                    .PropertyAccessor.SetProperty($PR_SECURITY_FLAGS, 3)
                    .send
                EndWith

 

Link to comment
Share on other sites

I have searched the web high and low and it seems that the only solution at the moment is to extend your call to _OL_Open and specify a program to click the needed button.
_OL_Warnings.au3 is an example how to click away some security pop ups.

On the other hand I'm not sure it is a good idea to send messages as unencrypted/unsigned when they should be encrypted and signed for users with a certificate.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

33 minutes ago, water said:

I have searched the web high and low and it seems that the only solution at the moment is to extend your call to _OL_Open and specify a program to click the needed button.
_OL_Warnings.au3 is an example how to click away some security pop ups.

On the other hand I'm not sure it is a good idea to send messages as unencrypted/unsigned when they should be encrypted and signed for users with a certificate.

I will try it and see if it is OK. Clicking the cancel button is ok for me, but as the execution is stopped on the send line i am not sure the outlook warnings will work - i will have to do a script calling script and waiting for the popup thing. At the moment i wait 5min and if outlook is still active i assume user doesnt have cert. and kill it.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...