water Posted September 11, 2021 Author Posted September 11, 2021 You are looking for news mails in a loop. Better check the examples for events that come with the UDF (_OL_Example_NewMailEX). This script waits until a new mail arrives without using any CPU cycles. When a new mail arrives a specified function gets called to process this mail(s). My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
water Posted September 11, 2021 Author Posted September 11, 2021 Another way to get the latest mail item is described here: My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
bumankumar3 Posted September 13, 2021 Posted September 13, 2021 (edited) Do you by any chance call the signature function which needs MS Word? teatv apk spice money Edited September 23, 2021 by bumankumar3
Andrue Posted September 13, 2021 Posted September 13, 2021 Hi, I got a friend to help me with the code, So now it should be more manageable. ( I could do better. ) We have made it so that it now sorts and selects the oldest mails first. And that we print files by name. with the lowest number / date first. I will post a new version once I have tested it. But here is my code at the moment. Suggestions are welcome. Print Outlook attachments1.7.au3
water Posted September 13, 2021 Author Posted September 13, 2021 I would change If FileExists("C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe") Then If $DebugOn = 1 Then ConsoleWrite("Adobe 32Bit print: " & $vFileName & " ") If $DebugOn = 1 Then _WriteErrorLog("Adobe 32Bit print: " & $vFileName) If $DebugOn = 1 Then _WriteErrorLog('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName) If $DebugOn = 1 Then ConsoleWrite('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName & '" ') Local $iPID = Run('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName & '" ',"",@SW_MINIMIZE) sleep(6500) ProcessClose($iPID) to If FileExists("C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe") Then If $DebugOn = 1 Then ConsoleWrite("Adobe 32Bit print: " & $vFileName & " ") _WriteErrorLog("Adobe 32Bit print: " & $vFileName) _WriteErrorLog('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName) ConsoleWrite('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName & '" ') EndIf Local $iPID = Run('"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /h /p "' & $sSaveDir & $vFileName & '" ',"",@SW_MINIMIZE) sleep(6500) ProcessClose($iPID) And all other occurrences in your script. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
mustilem23 Posted September 23, 2021 Posted September 23, 2021 (edited) Dear water and Forum moderators, My company has switched from using Outlook to the messaging system called HubSpot, and I was able to handle the transactions easily using the attached scenario before. Could you please help me to produce a scenario for use in HubSpot? expandcollapse popup#include <OutlookEX.au3> Func _WinWaitActivate($title,$text,$timeout=0) WinWait($title,$text,$timeout) If Not WinActive($title,$text) Then WinActivate($title,$text) WinWaitActive($title,$text,$timeout) EndFunc Opt('TrayIconDebug', 1) Opt("WinTitleMatchMode", 2) _WinWaitActivate("Satis Teklifi ","") Local $sText = WinGetTitle("[ACTIVE]") $sText=StringMid($sText,17,9) ;Sorgulama ekranı getiriliyor. sleep(3000) MouseClick($MOUSE_CLICK_LEFT,1122 , 247, 1) sleep(3000) MouseClick($MOUSE_CLICK_RIGHT,1122 , 247, 1) sleep(1000) send("{TAB 5}") sleep(1000) Send("{ENTER}") sleep(1000) _WinWaitActivate("Hızlı Rapor Sorgusu: 015 - SSH Teklif - IFS Applications","") sleep(2000) send("{TAB 5}") Send("{ENTER}") ;teklif pdf ı görselı sleep(1000) _WinWaitActivate("015 - SSH Teklif ","") sleep(1000) ;burdamı hata bak MouseClick($MOUSE_CLICK_LEFT,67 , 98, 1) sleep(2000) send("{TAB}") sleep(1000) Send("{ENTER}") sleep(1000) _WinWaitActivate("Raporu Dışa Aktar","") sleep(2000) Send("{TAB 5}") Send("{ENTER}") Send("C:\Users\mdogru\Desktop\IFS ÇIKTILARI") sleep(500) MouseClick($MOUSE_CLICK_LEFT,311 , 75, 1) sleep(500) Send("{ENTER}") sleep(500) MouseClick($MOUSE_CLICK_LEFT,446 , 418, 1) sleep(500) MouseClick($MOUSE_CLICK_LEFT,459 , 451, 1) sleep(500) ;türü sec pdf MouseClick($MOUSE_CLICK_LEFT,358 , 396, 1) sleep(500) Send("DURMAZLAR_TEKLİF") sleep(500) Send("{ENTER}") _WinWaitActivate("Farklı Kaydetmeyi Onayla","") send("{TAB}") sleep(1000) Send("{ENTER}") _WinWaitActivate("Raporu Dışa Aktar","") Send("{ENTER}") sleep(1000) MouseClick($MOUSE_CLICK_LEFT,25 , 44, 1) sleep(50) _WinWaitActivate("Satis Teklifi -","") MouseClick($MOUSE_CLICK_LEFT,181 , 120, 2) sleep(2000) ;1 veri kopyalanıyor ,1. copy to the subject okkkkk... Send("^C") sleep(1000) ;Now please help to copy the data to the email subject section,şimdi email konu kısmına veri kopyalama işlemi için lütfen yardım , Global $oOutlook, $oInspector, $oItem ; Open connection to Outlook $oOutlook = _OL_Open() If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended) ; Access the currently displayed mail item $oInspector = $oOutlook.ActiveInspector If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error accessing ActiveInspector. @error = " & @error & ", @extended = " & @extended) $oItem = $oInspector.CurrentItem $sSubject = ClipGet() _OL_ItemModify($oOutlook, $oItem, Default, "Subject=" & $sSubject) If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error accessing current item. @error = " & @error & ", @extended = " & @extended) If $oItem.Class <> $olMail Then Exit MsgBox(16, "OutlookEX UDF", "Current item isn't a mail item. @error = " & @error & ", @extended = " & @extended) ; Add a PDF file $sAttachment ="C:\Users\mdogru\Desktop\IFS ÇIKTILARI\"&"DURMAZLAR_TEKLİF.pdf" _OL_ItemAttachmentAdd($oOutlook, $oItem, Default, $sAttachment) ; Change <Test.pdf> to the name of your PDF file - or change the whole path if the fil is stored in a different directory. If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error adding attachment to mail item. @error = " & @error & ", @extended = " & @extended) ; Display item $oItem.Display TEKLİF 25 03 2021.au3 Edited September 23, 2021 by mustilem23 flod
BatMan22 Posted September 26, 2021 Posted September 26, 2021 (edited) @water, I think I found a tiny bug? Or I just missed something but looking at the UDF: Func _OL_ItemAttachmentAdd($oOL, $vItem, $sStoreID, $vP1, $vP2 = "", $vP3 = "", $vP4 = "", $vP5 = "", $vP6 = "", $vP7 = "", $vP8 = "", $vP9 = "", $vP10 = "", $sDelimiter = ",") If $sDelimiter = Default Then $sDelimiter = "," But the description mentions that default delimited is ; ; #FUNCTION# ==================================================================================================================== ; Name...........: _OL_Wrapper_SendMail ; Description ...: Creates and sends a mail (wrapper function). ; Syntax.........: _OL_Wrapper_SendMail($oOL[, $sTo = ""[, $sCc= ""[, $sBCc = ""[, $sSubject = ""[, $sBody = ""[, $sAttachments = ""[, $iBodyFormat = $olFormatUnspecified[, $iImportance = $olImportanceNormal]]]]]]]]) ; Parameters ....: $oOL - Outlook object returned by a preceding call to _OL_Open() ; $sTo - [optional] The display name of the recipient(s), separated by ; ; $sCc - [optional] The display name of the CC recipient(s) of the mail, separated by ; ; $sBCc - [optional] The display name of the BCC recipient(s) of the mail, separated by ; ; $sSubject - [optional] The Subject of the mail ; $sBody - [optional] The Body of the mail ; $sAttachments - [optional] Attachments, separated by ; Just a heads up. The reason why I posted this is because I kept getting a @error=5004 and I think it's because the file has a comma in it. Nope, even after changing the , to a ; I still get an 5004 error. Weird, maybe it's not a bug. Edited September 26, 2021 by BatMan22
water Posted September 26, 2021 Author Posted September 26, 2021 ; is correct for all parameters of _OL_Wrapper_SendMail. When calling _OL_ItemAttachmentAdd parameter $sDelimiter is set to Default (= ,). This delimiter is only used to split a string with multiple recipients. As _OL_Wrapper_SendMail passes an array of recipients $sDelimiter isn't used in _OL_ItemAttachmentAdd . It is a kind of bug as such delimiters should be consistent for all functions. If needed I could modify the UDF to accept , ; or both as separators. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
water Posted September 26, 2021 Author Posted September 26, 2021 5004 means: Attachment not found. How do you specify the attachment to add? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
BatMan22 Posted September 26, 2021 Posted September 26, 2021 Hi @water, Turns out I'm an idiot, the pdf I am attempting to email is being written to in the step immediately before sending this email. File is just busy apparently and a pause has fixed my issue. Will leave this here for anyone else that runs into this to know that Error 5004 can also mean file busy / file not found.
water Posted September 26, 2021 Author Posted September 26, 2021 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
BatMan22 Posted September 26, 2021 Posted September 26, 2021 @water Actually I definitely think is a bug. I stand by my comment about being an idiot but when adding an attachment with a "," in the name, it does get split up. I added an array to show $aTemp with and without hard coding the delimiter: Func _OL_ItemAttachmentAdd($oOL, $vItem, $sStoreID, $vP1, $vP2 = "", $vP3 = "", $vP4 = "", $vP5 = "", $vP6 = "", $vP7 = "", $vP8 = "", $vP9 = "", $vP10 = "", $sDelimiter = ",") ;~ If $sDelimiter = Default Then $sDelimiter = "," $sDelimiter = ";" ;Works ;~ $sDelimiter = "," ;Doesn't work Local $aAttachments[10] If Not IsObj($vItem) Then If StringStripWS($vItem, BitOR($STR_STRIPLEADING, $STR_STRIPTRAILING)) = "" Then Return SetError(1, 0, 0) $vItem = $oOL.Session.GetItemFromID($vItem, $sStoreID) If @error Then Return SetError(2, @error, 0) EndIf ; Move attachments into an array If Not IsArray($vP1) Then $aAttachments[0] = $vP1 $aAttachments[1] = $vP2 $aAttachments[2] = $vP3 $aAttachments[3] = $vP4 $aAttachments[4] = $vP5 $aAttachments[5] = $vP6 $aAttachments[6] = $vP7 $aAttachments[7] = $vP8 $aAttachments[8] = $vP9 $aAttachments[9] = $vP10 Else $aAttachments = $vP1 EndIf ; Add attachments to the item For $iIndex = 0 To UBound($aAttachments) - 1 If $aAttachments[$iIndex] = "" Or $aAttachments[$iIndex] = Default Then ContinueLoop Local $aTemp = StringSplit($aAttachments[$iIndex], $sDelimiter) _ArrayDisplay($aTemp) ReDim $aTemp[5] ; Make sure the array has 4 elements (element 2-4 might be empty)
water Posted September 26, 2021 Author Posted September 26, 2021 A quick and dirty fix could be to modify _OL_Wrapper_SendMail: _OL_ItemAttachmentAdd($oOL, $oItem, Default, $aAttachments) with _OL_ItemAttachmentAdd($oOL, $oItem, Default, $aAttachments, Default, Default, Default, Default, Default, Default, Default, Default, Default, ";") My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
MWIProd Posted October 29, 2021 Posted October 29, 2021 Hi Water, When my script use #RequireAdmin, the function _OL_Open() doesn't work. Nothing happen. Is it normal ?
water Posted October 29, 2021 Author Posted October 29, 2021 Yes. #RequireAdmin starts a new process as Admin with elevated permissions. Outlook needs to be started by the user who runs the script. please have a look at the wiki. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
MWIProd Posted October 29, 2021 Posted October 29, 2021 Thank you water for your answer. I will look the wiki. 😉
water Posted November 16, 2021 Author Posted November 16, 2021 Version 1.7.0.0 of the UDF has been released. Now you get a help file that looks like the AutoIt help. Please test before using in production! For download please see my signature. Skysnake and DonChunior 1 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
HighlanderSword Posted January 11, 2022 Posted January 11, 2022 When using the below code snippet , I only expect to get appointments for 2/18. I have recurring appointments and it seems to include those in the results , so for an example I have a recurring one that was built on 5/6/2021 and it is included when i run the below find , but is not scheduled for 2/18/2022. Global $aAppointments = _OL_ItemFind($oOutlook, "*\Calendar", $olAppointment, "[Start]>='2022-02-18 00:00' And [End]<='2022-02-18 23:59'", "", "", "EntryID,Subject,Body,ConversationTopic,Start", "", 2) What am I missing
water Posted January 11, 2022 Author Posted January 11, 2022 Does the recurrence define an appointment for 2022-02-18 which later has been deleted or moved? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.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 (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
HighlanderSword Posted January 11, 2022 Posted January 11, 2022 defines ones that are after 2022-02-18
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now