SendMailStart.p 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. /*------------------------------------------------------------------------
  5. File :
  6. Purpose :
  7. Syntax :
  8. Description :
  9. Author(s) :
  10. Created :
  11. Notes :
  12. ----------------------------------------------------------------------*/
  13. /* This .W file was created with the Progress AppBuilder. */
  14. /*----------------------------------------------------------------------*/
  15. /* *************************** Definitions ************************** */
  16. USING System.Net.*.
  17. USING OpenEdge.Core.*.
  18. USING System.Net.Mail.*.
  19. { super/funktionen.i }
  20. { incl/ttsendmail.i }
  21. { incl/properties.i }
  22. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  23. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  24. DEFINE VARIABLE cTO AS CHARACTER NO-UNDO.
  25. DEFINE VARIABLE cCC AS CHARACTER NO-UNDO.
  26. DEFINE VARIABLE iAblauf AS INTEGER NO-UNDO.
  27. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  28. DEFINE VARIABLE cWert AS CHARACTER NO-UNDO.
  29. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  30. DEFINE VARIABLE iAnzMail AS INTEGER NO-UNDO.
  31. DEFINE VARIABLE cSendMailProg AS CHARACTER NO-UNDO.
  32. DEFINE VARIABLE cProgramm AS CHARACTER NO-UNDO.
  33. DEFINE VARIABLE cLogFile AS CHARACTER NO-UNDO.
  34. /* _UIB-CODE-BLOCK-END */
  35. &ANALYZE-RESUME
  36. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  37. /* ******************** Preprocessor Definitions ******************** */
  38. &Scoped-define PROCEDURE-TYPE Procedure
  39. &Scoped-define DB-AWARE no
  40. /* _UIB-PREPROCESSOR-BLOCK-END */
  41. &ANALYZE-RESUME
  42. /* *********************** Procedure Settings ************************ */
  43. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  44. /* Settings for THIS-PROCEDURE
  45. Type: Procedure
  46. Allow:
  47. Frames: 0
  48. Add Fields to: Neither
  49. Other Settings: CODE-ONLY COMPILE
  50. */
  51. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  52. /* ************************* Create Window ************************** */
  53. &ANALYZE-SUSPEND _CREATE-WINDOW
  54. /* DESIGN Window definition (used by the UIB)
  55. CREATE WINDOW Procedure ASSIGN
  56. HEIGHT = 15
  57. WIDTH = 60.
  58. /* END WINDOW DEFINITION */
  59. */
  60. &ANALYZE-RESUME
  61. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  62. /* *************************** Main Block *************************** */
  63. DEFINE BUFFER bASMutation FOR ASMutation.
  64. iAnzMail = 0.
  65. cSendMailProg = SEARCH ('sendsmtpmail.p').
  66. cProgramm = DYNAMIC-FUNCTION ('makeProgname':U, THIS-PROCEDURE:HANDLE) NO-ERROR.
  67. cLogFile = DYNAMIC-FUNCTION ('getLogFilePfad':U) NO-ERROR.
  68. IF cLogFile = ? THEN cLogFile = SESSION:TEMP-DIRECTORY.
  69. cLogFile = cLogFile + cProgramm + '.log'.
  70. RUN VALUE(cSendMailProg) ( cProgramm, cLogFile, cSendMailProg ) NO-ERROR.
  71. FOR EACH bASMutation NO-LOCK
  72. WHERE bASMutation.MutArt = 'MAIL'
  73. AND bASMutation.Aktiv = TRUE
  74. AND bASMutation.cStatus = '' :
  75. FIND ASMutation EXCLUSIVE-LOCK
  76. WHERE RECID(ASMutation) = RECID(bASMutation) NO-WAIT NO-ERROR.
  77. IF NOT AVAILABLE ASMutation THEN NEXT.
  78. ASSIGN
  79. ASMutation.cStatus = 'A'.
  80. ASSIGN
  81. cTo = ''
  82. cCC = ''.
  83. iAblauf = 0.
  84. cFeld = REPLACE(ASMutation.cFeld_1, ',', ';').
  85. DO ix = 1 TO NUM-ENTRIES(cFeld, ';'):
  86. cWert = ENTRY(ix, cFeld, ';').
  87. IF cWert BEGINS 'TO:' THEN ASSIGN cWert = SUBSTRING(cWert,04)
  88. iAblauf = 1.
  89. IF cWert BEGINS 'CC:' THEN ASSIGN cWert = SUBSTRING(cWert,04)
  90. iAblauf = 2.
  91. IF iAblauf = 0 THEN NEXT.
  92. CASE iAblauf:
  93. WHEN 1 THEN
  94. cTO = cTO
  95. + (IF cTO = '' THEN '' ELSE ';')
  96. + cWert.
  97. WHEN 2 THEN
  98. cCC = cCC
  99. + (IF cCC = '' THEN '' ELSE ';')
  100. + cWert.
  101. END CASE.
  102. END.
  103. /* ---------------------------------- */
  104. /* Für test an eine Feste Mailadresse */
  105. /* ---------------------------------- */
  106. /* MESSAGE cTO SKIP cCC */
  107. /* VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. */
  108. /* cTO = 'wr@adprime.ch;wariru@hotmail.ch'. */
  109. /* cCC = 'walter.riechsteiner@gmail.com;wariru@hotmail.ch'. */
  110. EMPTY TEMP-TABLE ttsendmail.
  111. CREATE ttSendMail.
  112. ASSIGN
  113. ttsendmail.cFrom = cMailFromFreigabe
  114. ttsendmail.cTo = cTO
  115. ttsendmail.cCC = cCC
  116. ttsendmail.cSubject = ASMutation.cFeld_2
  117. ttsendmail.cBody = ASMutation.cFeld_3
  118. ttsendmail.cMailServer = cMailServer
  119. ttsendmail.cMailPort = cMailPort
  120. ttsendmail.cMailKonto = cMailKonto
  121. ttsendmail.cMailPassw = cMailPassw
  122. ttsendmail.cDomaine = cMailDomaine
  123. ttsendmail.lAuth = lMailAuth
  124. ttSendMail.lSSLEnabled = lSSLEnabled
  125. ttSendMail.cAttachedName = ASMutation.cKey_2
  126. ttSendMail.cAttachedFile = ASMutation.cKey_2.
  127. RUN VALUE(cSendMailProg) ( httSendMail, OUTPUT cMessage, OUTPUT lRetVal ).
  128. IF NOT lRetVal THEN
  129. DO:
  130. MESSAGE 'Mailversand gescheitert wegen ' SKIP
  131. cMessage
  132. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  133. ASSIGN
  134. ASMutation.cStatus = ''
  135. ASMutation.Aktiv = TRUE.
  136. NEXT.
  137. END.
  138. ASSIGN
  139. ASMutation.cStatus = 'E'
  140. ASMutation.Aktiv = FALSE.
  141. iAnzMail = iAnzMail + 1.
  142. PAUSE 0.25 NO-MESSAGE.
  143. IF iAnzMail < 5 THEN NEXT.
  144. PAUSE 5 NO-MESSAGE.
  145. iAnzMail = 0.
  146. END.
  147. /* _UIB-CODE-BLOCK-END */
  148. &ANALYZE-RESUME