Problem with reading the contents, from and to adresses while using javamail pop3
Hey,
I'm downloading mail from a google account using pop3.
The dowloading is going well(at least for some messages).
When I display the contents of the message or the sender and receiver
addresses it shows some wierd thing that at least I cannot
understand....
Following is my program:
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import com.sun.mail.pop3.POP3Message;
public class PopTest2
{
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String emailMsgTxt = "Test Message
Contents";
private static final String emailSubjectTxt = "A test from
gmail";
private static final String emailFromAddress =
"myemailid@gmail.com";
private static final String SSL_FACTORY =
"javax.net.ssl.SSLSocketFactory";
//private static final String[] sendTo = { "nbokare@yahoo.com"};
public static void main(String argv[])
{
AccountAuthentication auth = new AccountAuthentication();
String host = "pop.gmail.com";
String user = "myemailid";
String password = "mypassword";
String port = "995";
Properties props = new Properties();
//props.put("mail.debug", "true");
props.put("mail.pop3.host", host);
props.put("mail.pop3.user", user);
props.put("mail.pop3.port", port);
props.put("mail.pop3.starttls.enable","true");
props.put("mail.pop3.auth", "true");
props.put("mail.pop3.socketFactory.port", port);
props.put("mail.pop3.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.pop3.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(props, auth);
try
{
Store store = session.getStore("pop3");
try
{
store.connect(host, user, password);
}
catch (MessagingException ex)
{
ex.printStackTrace();
}
try
{
if(store.isConnected())
{
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] msg = folder.getMessages();
//Calendar c = new Calendar();
int len = folder.getMessageCount();
Date d=new Date();
Date msgDate;
System.out.println("Message Count: " + len);
Part p;
for(int i = 0; i < len; i++)
{
Flags msgFlags = msg[i].getFlags();
//msgDate=msg[i].getReceivedDate();
Flags.Flag[] sf = msgFlags.getSystemFlags();
{
p=msg[i];
String subject = msg[i].getSubject();
System.out.println("\nSEEN message");
System.out.println("\nSubject[" + i +
"]:---------------> " + subject);
System.out.println("\nFrom-------------------
"+msg[i].getFrom());
System.out.println("\nTo--------------------->"+
(msg[i].getRecipients(Message.RecipientType.TO)).toString());
//System.out.println("From soft------------->" +
"vglass@jscape.com");
System.out.println("Content:----------------->
\n"+msg[i].getContent());
}
}
}
else
{
System.out.println("Unable to open the Inbox.");
}
}
catch (MessagingException ex)
{
ex.printStackTrace();
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
catch (NoSuchProviderException ex)
{
ex.printStackTrace();
}
}
}
And following is the output :(of only one of the many mails of the
account)
SEEN message
Subject[9]:---------------> Re: Student project
From------------------->[Ljavax.mail.internet.InternetAddress;@13582d
To--------------------->[Ljavax.mail.internet.InternetAddress;@21b6d
Content:----------------->
javax.mail.internet.MimeMultipart@56a499
Now I can assure you that the message does not contain
"javax.mail.internet.MimeMultipart@56a499".
How do I get the mail ids of sender and receiver and the content?
Thanx for having a look....