**********************************************************************
      *  Program    : JAVAMAIL
      *  Date       : 02/25/2002
      *  Programmer : James Zhang
      *  Desc.      : RPG call Java method to send email.
      **********************************************************************
     H DftActGrp(*NO) ActGrp(*CALLER)

     D Class1          C                   'JavaMail'
     D Class2          C                   'JavaMailwithAttachment'
      /Copy JAVAMAILPR

     D from            S             50
     D to              S             50
     D replyTo         S             50
     D subject         S             50
     D text            S           9999
     D filename1       S            100
     D filename2       S            100
     D filename3       S            100
     D filename4       S            100
     D filename5       S            100
     D filename6       S            100
     D filename7       S            100
     D filename8       S            100
     D filename9       S            100
     D filename10      S            100
     D filename11      S            100
     D filename12      S            100
     D filename13      S            100
     D filename14      S            100
     D filename15      S            100
     D filename16      S            100
     D filename17      S            100
     D filename18      S            100
     D filename19      S            100
     D filename20      S            100
     D filename21      S            100
     D filename22      S            100
     D filename23      S            100
     D filename24      S            100
     D filename25      S            100
     D filename26      S            100
     D filename27      S            100
     D filename28      S            100
     D filename29      S            100
     D filename30      S            100
     D charRtnCode     S              3
     D rtnCode         S              5I 0
     D rtnText         S            100

     D sFrom           S               O   Class(*JAVA:'java.lang.String')
     D sTo             S               O   Class(*JAVA:'java.lang.String')
     D sReplyTo        S               O   Class(*JAVA:'java.lang.String')
     D sSubject        S               O   Class(*JAVA:'java.lang.String')
     D sText           S               O   Class(*JAVA:'java.lang.String')
     D sFilename1      S               O   Class(*JAVA:'java.lang.String')
     D sFilename2      S               O   Class(*JAVA:'java.lang.String')
     D sFilename3      S               O   Class(*JAVA:'java.lang.String')
     D sFilename4      S               O   Class(*JAVA:'java.lang.String')
     D sFilename5      S               O   Class(*JAVA:'java.lang.String')
     D sFilename6      S               O   Class(*JAVA:'java.lang.String')
     D sFilename7      S               O   Class(*JAVA:'java.lang.String')
     D sFilename8      S               O   Class(*JAVA:'java.lang.String')
     D sFilename9      S               O   Class(*JAVA:'java.lang.String')
     D sFilename10     S               O   Class(*JAVA:'java.lang.String')
     D sFilename11     S               O   Class(*JAVA:'java.lang.String')
     D sFilename12     S               O   Class(*JAVA:'java.lang.String')
     D sFilename13     S               O   Class(*JAVA:'java.lang.String')
     D sFilename14     S               O   Class(*JAVA:'java.lang.String')
     D sFilename15     S               O   Class(*JAVA:'java.lang.String')
     D sFilename16     S               O   Class(*JAVA:'java.lang.String')
     D sFilename17     S               O   Class(*JAVA:'java.lang.String')
     D sFilename18     S               O   Class(*JAVA:'java.lang.String')
     D sFilename19     S               O   Class(*JAVA:'java.lang.String')
     D sFilename20     S               O   Class(*JAVA:'java.lang.String')
     D sFilename21     S               O   Class(*JAVA:'java.lang.String')
     D sFilename22     S               O   Class(*JAVA:'java.lang.String')
     D sFilename23     S               O   Class(*JAVA:'java.lang.String')
     D sFilename24     S               O   Class(*JAVA:'java.lang.String')
     D sFilename25     S               O   Class(*JAVA:'java.lang.String')
     D sFilename26     S               O   Class(*JAVA:'java.lang.String')
     D sFilename27     S               O   Class(*JAVA:'java.lang.String')
     D sFilename28     S               O   Class(*JAVA:'java.lang.String')
     D sFilename29     S               O   Class(*JAVA:'java.lang.String')
     D sFilename30     S               O   Class(*JAVA:'java.lang.String')

      **************************************************************************
      *                  Main
      **************************************************************************
     C     *ENTRY        PLIST
     C                   PARM                    from
     C                   PARM                    to
     C                   PARM                    replyTo
     C                   PARM                    subject
     C                   PARM                    text
     C                   PARM                    filename1
     C                   PARM                    filename2
     C                   PARM                    filename3
     C                   PARM                    filename4
     C                   PARM                    filename5
     C                   PARM                    filename6
     C                   PARM                    filename7
     C                   PARM                    filename8
     C                   PARM                    filename9
     C                   PARM                    filename10
     C                   PARM                    filename11
     C                   PARM                    filename12
     C                   PARM                    filename13
     C                   PARM                    filename14
     C                   PARM                    filename15
     C                   PARM                    filename16
     C                   PARM                    filename17
     C                   PARM                    filename18
     C                   PARM                    filename19
     C                   PARM                    filename20
     C                   PARM                    filename21
     C                   PARM                    filename22
     C                   PARM                    filename23
     C                   PARM                    filename24
     C                   PARM                    filename25
     C                   PARM                    filename26
     C                   PARM                    filename27
     C                   PARM                    filename28
     C                   PARM                    filename29
     C                   PARM                    filename30
     C                   PARM                    charRtnCode
     C                   PARM                    rtnText

      *  Create String objects from the alphanumeric constants

     c                   IF        from <> ' ' and to <> ' '
     C                   Eval      sFrom     = newString(%trim(from))
     C                   Eval      sTo       = newString(%trim(to))

     C                   IF        replyTo = ' '
     C                   Eval      sReplyTo  = newString(' ')
     C                   ELSE
     C                   Eval      sReplyTo  = newString(%trim(replyTo))
     C                   ENDIF

     C                   IF        subject = ' '
     C                   Eval      sSubject  = newString(' ')
     C                   ELSE
     C                   Eval      sSubject  = newString(%trim(subject))
     C                   ENDIF

     C                   IF        text = ' '
     C                   Eval      sText     = newString(' ')
     C                   ELSE
     C                   Eval      sText     = newString(%trim(text))
     C                   ENDIF

     c                   IF        filename1 = ' '
     c                   Eval      rtnCode = sendMail1(sFrom:sTo:sReplyTo:
     c                                                 sSubject:sText)
     c                   ELSE
      * test each filename to see if it's blank & handle accordingly
     c                   if        filename1 <> *blanks
     c                   Eval      sFilename1 = newString(%trim(filename1))
     c                   else
     c                   eval      sFilename1 = newString(' ')
     c                   endif

     c                   if        filename2 <> *blanks
     c                   Eval      sFilename2 = newString(%trim(filename2))
     c                   else
     c                   eval      sFilename2 = newString(' ')
     c                   endif

     c                   if        filename3 <> *blanks
     c                   Eval      sFilename3 = newString(%trim(filename3))
     c                   else
     c                   eval      sFilename3 = newString(' ')
     c                   endif

     c                   if        filename4 <> *blanks
     c                   Eval      sFilename4 = newString(%trim(filename4))
     c                   else
     c                   eval      sFilename4 = newString(' ')
     c                   endif

     c                   if        filename5 <> *blanks
     c                   Eval      sFilename5 = newString(%trim(filename5))
     c                   else
     c                   eval      sFilename5 = newString(' ')
     c                   endif

     c                   if        filename6 <> *blanks
     c                   Eval      sFilename6 = newString(%trim(filename6))
     c                   else
     c                   eval      sFilename6 = newString(' ')
     c                   endif

     c                   if        filename7 <> *blanks
     c                   Eval      sFilename7 = newString(%trim(filename7))
     c                   else
     c                   eval      sFilename7 = newString(' ')
     c                   endif

     c                   if        filename8 <> *blanks
     c                   Eval      sFilename8 = newString(%trim(filename8))
     c                   else
     c                   eval      sFilename8 = newString(' ')
     c                   endif

     c                   if        filename9 <> *blanks
     c                   Eval      sFilename9 = newString(%trim(filename9))
     c                   else
     c                   eval      sFilename9 = newString(' ')
     c                   endif

     c                   if        filename10<> *blanks
     c                   Eval      sFilename10= newString(%trim(filename10))
     c                   else
     c                   eval      sFilename10= newString(' ')
     c                   endif

     c                   if        filename11<> *blanks
     c                   Eval      sFilename11= newString(%trim(filename11))
     c                   else
     c                   eval      sFilename11= newString(' ')
     c                   endif

     c                   if        filename12<> *blanks
     c                   Eval      sFilename12= newString(%trim(filename12))
     c                   else
     c                   eval      sFilename12= newString(' ')
     c                   endif

     c                   if        filename13<> *blanks
     c                   Eval      sFilename13= newString(%trim(filename13))
     c                   else
     c                   eval      sFilename13= newString(' ')
     c                   endif

     c                   if        filename14<> *blanks
     c                   Eval      sFilename14= newString(%trim(filename14))
     c                   else
     c                   eval      sFilename14= newString(' ')
     c                   endif

     c                   if        filename15<> *blanks
     c                   Eval      sFilename15= newString(%trim(filename15))
     c                   else
     c                   eval      sFilename15= newString(' ')
     c                   endif

     c                   if        filename16<> *blanks
     c                   Eval      sFilename16= newString(%trim(filename16))
     c                   else
     c                   eval      sFilename16= newString(' ')
     c                   endif

     c                   if        filename17<> *blanks
     c                   Eval      sFilename17= newString(%trim(filename17))
     c                   else
     c                   eval      sFilename17= newString(' ')
     c                   endif

     c                   if        filename18<> *blanks
     c                   Eval      sFilename18= newString(%trim(filename18))
     c                   else
     c                   eval      sFilename18= newString(' ')
     c                   endif

     c                   if        filename19<> *blanks
     c                   Eval      sFilename19= newString(%trim(filename19))
     c                   else
     c                   eval      sFilename19= newString(' ')
     c                   endif

     c                   if        filename20<> *blanks
     c                   Eval      sFilename20= newString(%trim(filename20))
     c                   else
     c                   eval      sFilename20= newString(' ')
     c                   endif

     c                   if        filename21<> *blanks
     c                   Eval      sFilename21= newString(%trim(filename21))
     c                   else
     c                   eval      sFilename21= newString(' ')
     c                   endif

     c                   if        filename22<> *blanks
     c                   Eval      sFilename22= newString(%trim(filename22))
     c                   else
     c                   eval      sFilename22= newString(' ')
     c                   endif

     c                   if        filename23<> *blanks
     c                   Eval      sFilename23= newString(%trim(filename23))
     c                   else
     c                   eval      sFilename23= newString(' ')
     c                   endif

     c                   if        filename24<> *blanks
     c                   Eval      sFilename24= newString(%trim(filename24))
     c                   else
     c                   eval      sFilename24= newString(' ')
     c                   endif

     c                   if        filename25<> *blanks
     c                   Eval      sFilename25= newString(%trim(filename25))
     c                   else
     c                   eval      sFilename25= newString(' ')
     c                   endif

     c                   if        filename26<> *blanks
     c                   Eval      sFilename26= newString(%trim(filename26))
     c                   else
     c                   eval      sFilename26= newString(' ')
     c                   endif

     c                   if        filename27<> *blanks
     c                   Eval      sFilename27= newString(%trim(filename27))
     c                   else
     c                   eval      sFilename27= newString(' ')
     c                   endif

     c                   if        filename28<> *blanks
     c                   Eval      sFilename28= newString(%trim(filename28))
     c                   else
     c                   eval      sFilename28= newString(' ')
     c                   endif

     c                   if        filename29<> *blanks
     c                   Eval      sFilename29= newString(%trim(filename29))
     c                   else
     c                   eval      sFilename29= newString(' ')
     c                   endif

     c                   if        filename30<> *blanks
     c                   Eval      sFilename30= newString(%trim(filename30))
     c                   else
     c                   eval      sFilename30= newString(' ')
     c                   endif

     c                   Eval      rtnCode = sendMail2(sFrom:sTo:sReplyTo:
     c                                                 sSubject:sText:
     c                                                 sFilename1:sFilename2:
     c                                                 sFilename3:sFilename4:
     c                                                 sFilename5:sFilename6:
     c                                                 sFilename7:sFilename8)
     c                   ENDIF

     c                   ELSE
     c                   Eval      rtnCode = 105
     c                   ENDIF

     C                   EXSR      $setRtnCode

     C                   Eval      *InLr = *On
      **************************************************************************
      *                set return code
      **************************************************************************
     C     $setRtnCode   BEGSR
     C                   Select
     C                   When      rtnCode = 0
     C                   Eval      rtnText = 'Send mail completed.'

     C                   When      rtnCode = 100
     C                   Eval      rtnText = 'Email property file not found.'

     C                   When      rtnCode = 101
     C                   Eval      rtnText = 'javax.mail.MessagingException'

     C                   When      rtnCode = 102
     C                   Eval      rtnText = 'java.net.ConnectException'

     C                   When      rtnCode = 103
     C                   Eval      rtnText = 'java.net.UnknownHostException'

     C                   When      rtnCode = 104
     C                   Eval      rtnText = 'Attachment file not found!'

     c                   When      rtnCode = 105
     c                   Eval      rtnText = 'Email address not found!'

     C                   When      rtnCode = 999
     C                   Eval      rtnText = 'Run time error.'

     C                   EndSl

     C                   MOVE      rtnCode       charRtnCode
     C                   endsr