javamail and mbox

Discussion in 'Java' started by Raymond Kososki, Jan 31, 2007.

  1. 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, Jan 31, 2007
    #1
    1. Advertising

  2. Raymond Kososki

    Juan Singh Guest

    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.





    Raymond Kososki wrote:
    > 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, Jan 31, 2007
    #2
    1. Advertising

  3. 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 ...

    "Juan Singh" <> wrote in message
    news:...
    > 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.
    >
    >
    >
    >
    >
    > Raymond Kososki wrote:
    >> 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, Jan 31, 2007
    #3
  4. Raymond Kososki wrote:
    > 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 ...
    >

    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


    --
    martin@ | Martin Gregorie
    gregorie. | Essex, UK
    org |
     
    Martin Gregorie, Feb 1, 2007
    #4
  5. 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.getFrom()[0] +
    "\t" + messages.getSubject());
    messages.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();
    }
    }
    }

    "Martin Gregorie" <> wrote in message
    news:...
    > Raymond Kososki wrote:
    >> 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 ...
    >>

    > 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
    >
    >
    > --
    > martin@ | Martin Gregorie
    > gregorie. | Essex, UK
    > org |
     
    Raymond Kososki, Feb 7, 2007
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. MJackson

    Breaking apart MBOX

    MJackson, Feb 19, 2004, in forum: Perl
    Replies:
    1
    Views:
    573
    Gunnar Hjalmarsson
    Feb 19, 2004
  2. steph

    mbox files

    steph, Nov 3, 2004, in forum: Java
    Replies:
    1
    Views:
    533
    Oscar kind
    Nov 3, 2004
  3. Brad Tilley
    Replies:
    2
    Views:
    656
    Jorgen Grahn
    Oct 28, 2004
  4. Replies:
    0
    Views:
    227
  5. Replies:
    3
    Views:
    572
    John Nagle
    Aug 27, 2010
Loading...

Share This Page