/* Input parameters */ DEF INPUT PARAMETER cProfile AS CHAR NO-UNDO. DEF INPUT PARAMETER iPriority AS INT NO-UNDO. /* Low = 0; Normal = 1; High = 2 */ DEF INPUT PARAMETER cSubject AS CHAR NO-UNDO. DEF INPUT PARAMETER cText AS CHAR NO-UNDO. DEF INPUT PARAMETER cTo AS CHAR NO-UNDO. DEF INPUT PARAMETER cFiles AS CHAR NO-UNDO. /* Variables */ DEF VAR chSession AS COM-HANDLE NO-UNDO. DEF VAR chMessage AS COM-HANDLE NO-UNDO. DEF VAR chRecip AS COM-HANDLE NO-UNDO. DEF VAR chFiles AS COM-HANDLE NO-UNDO. DEF VAR iLoop AS INT NO-UNDO. DEF VAR fConnect AS LOG NO-UNDO. /* Connection */ fConnect = FALSE. CREATE "MAPI.SESSION" chSession CONNECT NO-ERROR. IF VALID-HANDLE(chSession) THEN fConnect = TRUE. ELSE DO: CREATE "MAPI.SESSION" chSession NO-ERROR. IF NOT VALID-HANDLE(chSession) THEN DO: MESSAGE 'Kein Outlook installiert' VIEW-AS ALERT-BOX INFORMATION. RETURN NO-APPLY. END. END. chSession:Logon(cProfile). /* Message Creation */ ASSIGN chMessage = chSession:OutBox:Messages:Add() chMessage:Subject = cSubject chMessage:Text = cText chMessage:importance = iPriority. /* Send To */ DO iLoop = 1 TO NUM-ENTRIES(cTo): ASSIGN chRecip = chMessage:Recipients:Add() chRecip:Name = ENTRY(iLoop, cTo) chRecip:Type = 1. chRecip:Resolve. END. /* Attachments */ DO iLoop = 1 TO NUM-ENTRIES(cFiles): ASSIGN chMessage:Text = chMessage:Text + CHR(10) chFiles = chMessage:Attachments:ADD() chFiles:name = ENTRY(iLoop, cFiles) chFiles:source = ENTRY(iLoop, cFiles). END. /* Send message */ chMessage:Update(TRUE, TRUE). IF VALID-HANDLE(chMessage) THEN chMessage:Send(TRUE, TRUE). chSession:Logoff. /* Release Objects */ RUN ReleaseObjects. /* ---------------------------------------------------------------- */ PROCEDURE ReleaseObjects : RELEASE OBJECT chRecip NO-ERROR. RELEASE OBJECT chFiles NO-ERROR. IF VALID-HANDLE(chMessage) THEN RELEASE OBJECT chMessage NO-ERROR. IF NOT fConnect THEN RELEASE OBJECT chSession NO-ERROR. END PROCEDURE.