Help needed for reading attachments in JavaMail

i have the following code to read mail, which works fine as long as it is for text mail.

But i need to read the attached mails and save it in a separate folder on the local machine.

how do i go about it. please help.

import java.util.*;

import java.io.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

publicclass FetchMail

{

String host =null;

String user=null;

String pswd =null;

public FetchMail(Hashtable hashConfigParams)

{

host = (String)hashConfigParams.get("popServer");

user = (String)hashConfigParams.get("popUser");

pswd = (String)hashConfigParams.get("popPswd");

}

publicvoid receive()throws Exception

{

Store store=null;

Folder folder=null;

try{

Properties props = System.getProperties();

props.setProperty("mail.pop3.socketFactory.class","javax.net.ssl.SSLSocketFactory");

props.setProperty("mail.pop3.socketFactory.fallback","false");

props.setProperty("mail.pop3.port","995");

props.setProperty("mail.pop3.socketFactory.port","995");

Session session = Session.getInstance(props);

store = session.getStore("pop3");

store.connect(host, user, pswd);

folder = store.getDefaultFolder();

if (folder ==null)thrownew Exception("No default folder");

folder = folder.getFolder("INBOX");

if (folder ==null)

{

thrownew Exception("No POP3 INBOX");

}

folder.open(Folder.READ_ONLY);

Message[] msgs = folder.getMessages();

for (int i = 0; i < msgs.length; i++)

{

String subject=msgs[i].getSubject();;

printMessage(msgs[i]);

//msg.invalidate(true);

}

}catch (Exception ex)

{

ex.printStackTrace();

}

finally

{

try

{

if (folder!=null)

folder.close(false);

if (store!=null)

store.close();

}catch (Exception ex2){

ex2.printStackTrace();

}

}

}

publicstaticvoid printMessage(Message message)

{

try{

String body="";

String from = ((InternetAddress)message.getFrom()[0]).getPersonal();

if (from==null)

{

from = ((InternetAddress)message.getFrom()[0]).getAddress();

}

System.out.println("FROM: "+from);

String subject = message.getSubject();

System.out.println("SUBJECT: "+subject);

Part messagePart = message;

Object content=messagePart.getContent();

if (contentinstanceof Multipart)

{

messagePart=((Multipart)content).getBodyPart(0);

}

// -- Get the content type --

String contentType = messagePart.getContentType();

//this the mail is plain mail.. or contain some html

if (contentType.startsWith("text/plain")|| contentType.startsWith("text/html"))

{

//get the mail

BufferedReader reader=new BufferedReader(new InputStreamReader(messagePart.getInputStream()));

//start reading line after line

String b=reader.readLine();

while (b!=null)

{

b=reader.readLine();

body+=b +"\n";

}

/*writingLogs(from + ":" + ((InternetAddress)msgs[i].getFrom()[0]).getAddress(),subject,body);

checkMsg(((InternetAddress)msgs[i].getFrom()[0]).getAddress(),subject,body);

msgs[i].setFlag(Flags.Flag.DELETED, true); //delete the messages

reader.close();*/

}

System.out.println("BODY: \n" + body);

System.out.println("--");

}catch (Exception ex){

ex.printStackTrace();

}

}

publicstaticvoid main(String args[])

{

Hashtable hashObj =new Hashtable();

hashObj.put("popServer","pop.gmail.com");

hashObj.put("popUser","nb123@gmail.com");

hashObj.put("popPswd","******");

try

{

FetchMail objFm =new FetchMail(hashObj);

objFm.receive();

}

catch (Exception ex)

{

ex.printStackTrace();

}

}

}

[7902 byte] By [nb123a] at [2007-11-26 15:07:58]
# 1
http://java.sun.com/developer/onlineTraining/JavaMail/contents.htmlTed.
ted_trippina at 2007-7-8 8:58:24 > top of Java-index,Java Essentials,New To Java...