&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure /*------------------------------------------------------------------------ File : Purpose : Syntax : Description : Author(s) : Created : Notes : ----------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* *************************** Definitions ************************** */ USING System.Net.*. USING OpenEdge.Core.*. USING System.Net.Mail.*. { super/funktionen.i } { incl/ttsendmail.i } { incl/properties.i } DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO. DEFINE VARIABLE lRetVal AS LOG NO-UNDO. DEFINE VARIABLE cTO AS CHARACTER NO-UNDO. DEFINE VARIABLE cCC AS CHARACTER NO-UNDO. DEFINE VARIABLE iAblauf AS INTEGER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzMail AS INTEGER NO-UNDO. DEFINE VARIABLE cSendMailProg AS CHARACTER NO-UNDO. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO. DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE Procedure &Scoped-define DB-AWARE no /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: Procedure Allow: Frames: 0 Add Fields to: Neither Other Settings: CODE-ONLY COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW Procedure ASSIGN HEIGHT = 15 WIDTH = 60. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure /* *************************** Main Block *************************** */ DEFINE BUFFER bASMutation FOR ASMutation. iAnzMail = 0. cSendMailProg = SEARCH ('sendsmtpmail.p'). cProgramm = DYNAMIC-FUNCTION ('makeProgname':U, THIS-PROCEDURE:HANDLE) NO-ERROR. cLogFile = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR. IF cLogFile = ? THEN cLogFile = SESSION:TEMP-DIRECTORY. cLogFile = cLogFile + cProgramm + '.log'. RUN VALUE(cSendMailProg) ( cProgramm, cLogFile, cSendMailProg ) NO-ERROR. FOR EACH bASMutation NO-LOCK WHERE bASMutation.MutArt = 'MAIL' AND bASMutation.Aktiv = TRUE AND bASMutation.cStatus = '' : FIND ASMutation EXCLUSIVE-LOCK WHERE RECID(ASMutation) = RECID(bASMutation) NO-WAIT NO-ERROR. IF NOT AVAILABLE ASMutation THEN NEXT. ASSIGN ASMutation.cStatus = 'A'. ASSIGN cTo = '' cCC = ''. iAblauf = 0. cFeld = REPLACE(ASMutation.cFeld_1, ',', ';'). DO ix = 1 TO NUM-ENTRIES(cFeld, ';'): cWert = ENTRY(ix, cFeld, ';'). IF cWert BEGINS 'TO:' THEN ASSIGN cWert = SUBSTRING(cWert,04) iAblauf = 1. IF cWert BEGINS 'CC:' THEN ASSIGN cWert = SUBSTRING(cWert,04) iAblauf = 2. IF iAblauf = 0 THEN NEXT. CASE iAblauf: WHEN 1 THEN cTO = cTO + (IF cTO = '' THEN '' ELSE ';') + cWert. WHEN 2 THEN cCC = cCC + (IF cCC = '' THEN '' ELSE ';') + cWert. END CASE. END. /* ---------------------------------- */ /* Für test an eine Feste Mailadresse */ /* ---------------------------------- */ /* MESSAGE cTO SKIP cCC */ /* VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. */ /* cTO = 'wr@adprime.ch;wariru@hotmail.ch'. */ /* cCC = 'walter.riechsteiner@gmail.com;wariru@hotmail.ch'. */ EMPTY TEMP-TABLE ttsendmail. CREATE ttSendMail. ASSIGN ttsendmail.cFrom = cMailFromFreigabe ttsendmail.cTo = cTO ttsendmail.cCC = cCC ttsendmail.cSubject = ASMutation.cFeld_2 ttsendmail.cBody = ASMutation.cFeld_3 ttsendmail.cMailServer = cMailServer ttsendmail.cMailPort = cMailPort ttsendmail.cMailKonto = cMailKonto ttsendmail.cMailPassw = cMailPassw ttsendmail.cDomaine = cMailDomaine ttsendmail.lAuth = lMailAuth ttSendMail.lSSLEnabled = lSSLEnabled ttSendMail.cAttachedName = ASMutation.cKey_2 ttSendMail.cAttachedFile = ASMutation.cKey_2. RUN VALUE(cSendMailProg) ( httSendMail, OUTPUT cMessage, OUTPUT lRetVal ). IF NOT lRetVal THEN DO: MESSAGE 'Mailversand gescheitert wegen ' SKIP cMessage VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. ASSIGN ASMutation.cStatus = '' ASMutation.Aktiv = TRUE. NEXT. END. ASSIGN ASMutation.cStatus = 'E' ASMutation.Aktiv = FALSE. iAnzMail = iAnzMail + 1. PAUSE 0.25 NO-MESSAGE. IF iAnzMail < 5 THEN NEXT. PAUSE 5 NO-MESSAGE. iAnzMail = 0. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME