if this code below did work to listen incoming and outgoing message, you should try 2 tips below..

try {
      Store s = Session.waitForDefaultSession().getStore();
      Folder[] folders = s.list(Folder.INBOX);
      Folder inbox = folders[0];
      inbox.addFolderListener(this);
   }
   catch (Exception e) {}
}

tips 1: Add a FolderListener to the Store

Store store = Session.waitForDefaultSession().getStore();
store.addFolderListener(new FolderListener() {
   public void messagesAdded(FolderEvent e) {
       if( e.getMessage().isInbound() == true )
       {
           //message is a new received message
           //perform some task here
       }
   }
   //implement other FolderListener methods
   //...
});

tips 2: Search recursively for INBOX folders

public class folderListenerImpl implements FolderListener{
   ...
}
...
Store store = Session.waitForDefaultSession().getStore();
Folder[] folders = store.list();
for( int foldercnt = folders.length - 1; foldercnt >= 0; --foldercnt) {
   Folder f = folders[foldercnt];
   recurse(f);
}
public void recurse(Folder f)
{
   if ( f.getType() == Folder.INBOX )
   {
       f.addFolderListener(folderListenerImpl);
   }
   Folder[] farray = f.list();
   for (int fcnt = farray.length - 1; fcnt >= 0; --fcnt)
   {
       recurse(farray[fcnt]);
   }
}

Note: In the above examples, Session.waitForDefaultSession().getStore() retrieves only the default session, which is associated with the message service configured under Options > Message Services on the BlackBerry device. If this option is set to Desktop, the message service is associated with a BlackBerry Enterprise Server account. If the option is set to Web Client, the message service is associated with a BlackBerry Internet Service account. For users with both BlackBerry Enterprise Server and BlackBerry Internet Service accounts who want to listen for new messages arriving in both of these accounts, retrieve the session for both services by searching through the service books on the BlackBerry device. The following code demonstrates how to retrieve a session for both BlackBerry Enterprise Server and BlackBerry Internet Service services:

ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] srs = sb.getRecords();

for(int cnt = srs.length - 1; cnt >= 0; --cnt) {

      //identify the service record associated with a mail message service via a CID of 'CMIME'
      if( srs[[i cnt].getCid().equals( "CMIME" )) {
          ServiceConfiguration sc = new ServiceConfiguration(srs[cnt]);
          Store store = Session.getInstance(sc).getStore();

          //then search recursively for INBOX folders using either method (1) or (2) above
       }
}

[1] http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800698/What_Is_-_Application_is_not_notified_when_new_messages_arrive.html?nodeid=800434&vernum=0