&& ==== INITIATE OUTLOOK APPLICATION OBJECTS ===== && loApp = CREATEOBJECT("Outlook.Application") loSpace = loApp.GetNameSpace("MAPI") objSMail = CREATEOBJECT("Redemption.SafeMailItem") && ==== INITIATE OUTLOOK APPLICATION OBJECTS ===== && && ====== SORT INBOX ITEMS TO ASSIGNED FOLDERS ======= && SELECT C_RULES SCAN ALL OL_rule = UPPER(ALLTRIM(C_RULES.RULE_NM)) OL_pst = UPPER(ALLTRIM(C_RULES.RULE_PST)) OL_fldr = UPPER(ALLTRIM(C_RULES.RULE_FLDR)) OL_srch = UPPER(ALLTRIM(C_RULES.RULE_SRCH)) pst_chk = .F. fldr_chk = .F. && ====== VERIFY OUTLOOK PST FILE & FOLDER EXISTS ======= && pst_cnt = loSpace.Folders.Count FOR xx=1 TO pst_cnt cur_pst = UPPER(ALLTRIM(loSpace.Folders(xx).Name)) IF UPPER(ALLTRIM(cur_pst)) == OL_pst pst_chk = .T. loFolders = loSpace.Folders(xx) fldr_cnt = loFolders.Folders.Count FOR zz=1 TO fldr_cnt cur_fldr = UPPER(ALLTRIM(loFolders.Folders(zz).Name)) IF UPPER(ALLTRIM(cur_fldr)) == OL_fldr fldr_chk = .T. EXIT ENDIF ENDFOR EXIT ENDIF ENDFOR && ====== VERIFY OUTLOOK PST FILE & FOLDER EXISTS ======= && && ==== LOOP IF FOLDER NOT FOUND ==== && IF pst_chk == .F. OR fldr_chk == .F. LOOP ENDIF && ==== LOOP IF FOLDER NOT FOUND ==== && loInbox = loSpace.GetDefaultFolder(6) oItems = loSpace.GetDefaultFolder(6).Items && ==== MOVE E-MAIL ACCORDING TO RULE CONDITION ==== && FOR EACH loItem IN oItems DO CASE CASE C_RULES.OPT_SNDER == .T. && ==== GET SENDER ADDRESS ==== && PR_SENDER_ADDRTYPE = "&HC1E001E" PR_EMAIL = "&H39FE001E" objSMail.Item = loItem strType = objSMail.Fields(PR_SENDER_ADDRTYPE) objSenderAE = objSMail.Sender If !ISNULL(objSenderAE) If UPPER(ALLTRIM(strType)) == "SMTP" sndr_addr = objSenderAE.Address ELSE IF UPPER(ALLTRIM(strType)) == "EX" sndr_addr = objSenderAE.Fields(PR_EMAIL) ENDIF ENDIF ENDIF && ==== GET SENDER ADDRESS ==== && IF UPPER(ALLTRIM(C_RULES.RULE_SRCH)) $ UPPER(ALLTRIM(sndr_addr)) loitem.Move(loSpace.Folders(OL_pst).Folders(OL_fldr)) ENDIF CASE C_RULES.OPT_SUBJCT == .T. IF UPPER(ALLTRIM(C_RULES.RULE_SRCH)) $ UPPER(ALLTRIM(loitem.Subject)) loitem.Move(loSpace.Folders(OL_pst).Folders(OL_fldr)) ENDIF CASE C_RULES.OPT_BODY == .T. IF UPPER(ALLTRIM(C_RULES.RULE_SRCH)) $ UPPER(ALLTRIM(loitem.Body)) loitem.Move(loSpace.Folders(OL_pst).Folders(OL_fldr)) ENDIF OTHERWISE && DEFAULT ENDCASE NEXT && ==== MOVE E-MAIL ACCORDING TO RULE CONDITION ==== && ENDSCAN && ====== SORT INBOX ITEMS TO ASSIGNED FOLDERS ======= &&