main (status)
    try{
        query getListOutboxs (status)

        if status == N
        foreach outboxs as outbox
            if outbox.fileUrl == null
                resUp = uploadFile()
                if resUp == OK 
                    sentMsg()
                else resUp eror 
                    changeStatus dari N ke E 
                    continue
            else
                sentMsg()

        else if status == E 
        foreach outboxs as outbox
            if outbox.retry >= 5
                continue
            else 
                retry++
                if outbox.fileUrl == null   
                    resUp = uploadFile()
                    if resUp == OK
                        sentMsg()
                    else resUp eror
                        retry++
                        changeStatus dari E ke R dan retry++
                else
                    sentMsg()
        
        else if status == R 
        foreach outboxs as outbox
            if outbox.retry >= 5
                continue
            else 
                retry++
                if outbox.fileUrl == null   
                    resUp = uploadFile()
                    if resUp == OK
                        sentMsg()
                    else resUp eror
                        retry++
                        changeStatus dari E ke R dan retry++
                else
                    sentMsg()

    }

    catch {

    }



    *sentMsg tidak usah diberi eror handling, info aja karena responnya tidak berpengaruh ke fungsi lain