Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / February 2007

Tip: Looking for answers? Try searching our database.

javamail and mbox

Thread view: 
Raymond Kososki - 31 Jan 2007 19:07 GMT
i'm finding all kinds of examples to read mail - with the email server
running pop or imap - but - i cannot find anything about using javamail to
read just plain old unix (SunOS or Solaris) mbox mail.  anybody have some
sample code to do this?
Juan Singh - 31 Jan 2007 19:18 GMT
JavaMail is used to communicate with POP or IMAP server to fetch email
and AFAIK mbox is just a file used by UNIX/Linux hosts to store your
messages. You cannot use JavaMail to read an mbox file. See if POP or
IMAP is open on your Solaris box.

> i'm finding all kinds of examples to read mail - with the email server
> running pop or imap - but - i cannot find anything about using javamail to
> read just plain old unix (SunOS or Solaris) mbox mail.  anybody have some
> sample code to do this?
Raymond Kososki - 31 Jan 2007 23:15 GMT
well - i have found some documentation from sun that there are third party
products which allow one to used the javamail api with mbox.  i've tried a
few with no luck yet.  i can get as far as reading the mail when it throws
an 'unable to lock file' exception.  i thought somebody out in the community
might know of a product so that i could use the javamail api instead of
having to write some kind of mailbox class myself - probably using the
commons lib - which it is looking like i'm going to have to do ...

> JavaMail is used to communicate with POP or IMAP server to fetch email and
> AFAIK mbox is just a file used by UNIX/Linux hosts to store your messages.
[quoted text clipped - 5 lines]
>> to read just plain old unix (SunOS or Solaris) mbox mail.  anybody have
>> some sample code to do this?
Martin Gregorie - 01 Feb 2007 13:12 GMT
> well - i have found some documentation from sun that there are third party
> products which allow one to used the javamail api with mbox.  i've tried a
[quoted text clipped - 3 lines]
> having to write some kind of mailbox class myself - probably using the
> commons lib - which it is looking like i'm going to have to do ...

mstor (which I found through the JavaMail third party products works
just fine. Here's how I make the connection:

1)get a Session instance
2)get a store instance:
    Store store session.getStore(new URLName("mstor:" + directory));
    store.connect();
   
  where "directory" is the pathname of the directory containing
  the mbox file.
3)now open the folder:
    Folder folder = store.getDefaultFolder();
    folder = folder.getFolder(mbox);
    folder.open(Folder.READ_ONLY);

  where "mbox" contains the name of the mbox file. Of course, this just
  shows the method calling sequence that works for me. Many of these
  methods throw exceptions. I leave exception handling as an exercise
  for you because your program structure will probably not match mine.

I started by modifying the JavaMail mail reading example, but have since
rearranged it into a set of classes: the code I'm quoted from is in my
InputQueue class which hides the Store and Folder instants from the rest
of the application. InputQueue can read messages from mbox and from
servers via any of the standard connection protocols. Apart from a
constructor that reads system properties and sets up debug tracing, the
methods are:
    connect
    openInBox
    hasMessages
    getNextMessage
    close

I still have to add a method for deleting messages (not for use with
mstor in my application).

HTH

Signature

martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Raymond Kososki - 07 Feb 2007 03:43 GMT
Many thanks Martin!  I downloaded mstor and with the little program below
was able to successfully browse through my emails.  the jars mbox.jar,
activation.jar and mail.jar are needed.  This code runs on my sun box, which
is running SunOS 5.9.  I am off and running - thanks!

package com.xxx.yyy.mstore;
import java.io.*;
import java.util.*;
import javax.mail.*;
public class Mstor {
   public static void main(String[] args) {
       Session session = Session.getDefaultInstance(new Properties());
       try {
           Store store = session.getStore(new URLName("mstor:/var/mail"));
           store.connect();
           //
           // read messages from Inbox..
           Folder inbox = store.getDefaultFolder().getFolder("user01");
           inbox.open(Folder.READ_ONLY);
           Message[] messages = inbox.getMessages();
           System.out.println(messages.length);
           try {
               for (int i=0, n=messages.length; i<n; i++){
                   System.out.println(i + ": " + messages[i].getFrom()[0] +
"\t" + messages[i].getSubject());
                   messages[i].writeTo(System.out);
               }
           } catch (IOException ioe) {
               ioe.printStackTrace();
           }
           inbox.close(false); // expunges all deleted messages if this
flag is true
           store.close();
       } catch (MessagingException me) {
           me.printStackTrace();
       }
   }
}

>> well - i have found some documentation from sun that there are third
>> party products which allow one to used the javamail api with mbox.  i've
[quoted text clipped - 42 lines]
>
> HTH


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.