Total Pageviews

Tuesday, April 20, 2010

Java Mailing API Example

Hi friends all the persons are used to find the sample code everytime for sending the mails or getting the mails.
Here I am posting the code for putting the code for that


package gmail;

public class GmailReading {

public GmailReading()
{
}

public static void main(String[] args) {

try {

GmailUtilities gmail = new GmailUtilities();
gmail.setUserPass("", "");
gmail.connect();
gmail.openFolder("INBOX");

int totalMessages = gmail.getMessageCount();
int newMessages = gmail.getNewMessageCount();

System.out.println("Total messages = " + totalMessages);
System.out.println("New messages = " + newMessages);
System.out.println("-------------------------------");
for(int i=1;i<=totalMessages;i++)
gmail.printMessage(i);

} catch(Exception e)
{
e.printStackTrace();
System.exit(-1);
}

}

}







package gmail;

import com.sun.mail.pop3.POP3SSLStore;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.FetchProfile;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.Flags.Flag;
import javax.mail.internet.ContentType;
import javax.mail.internet.ParseException;

public class GmailUtilities {

private Session session = null;
private Store store = null;
private String username, password;
private Folder folder;

public GmailUtilities() {

}

public void setUserPass(String username, String password) {
this.username = username;
this.password = password;
}

public void connect() throws Exception {

String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

Properties pop3Props = new Properties();

pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
pop3Props.setProperty("mail.pop3.port", "995");
pop3Props.setProperty("mail.pop3.socketFactory.port", "995");

URLName url = new URLName("pop3", "pop.gmail.com", 995, "",
username, password);

session = Session.getInstance(pop3Props, null);
store = new POP3SSLStore(session, url);
store.connect();

}

public void openFolder(String folderName) throws Exception {

// Open the Folder
folder = store.getDefaultFolder();

folder = folder.getFolder(folderName);

if (folder == null) {
throw new Exception("Invalid folder");
}

// try to open read/write and if that fails try read-only
try {

folder.open(Folder.READ_WRITE);

} catch (MessagingException ex) {
ex.printStackTrace();

folder.open(Folder.READ_ONLY);

}
}

public void closeFolder() throws Exception {
folder.close(false);
}

public int getMessageCount() throws Exception {
return folder.getMessageCount();
}

public int getNewMessageCount() throws Exception {
return folder.getNewMessageCount();
}

public void disconnect() throws Exception {
store.close();
}

public void printMessage(int messageNo) throws Exception {
System.out.println("Getting message number: " + messageNo);

Message m = null;

try {
m = folder.getMessage(messageNo);
dumpPart(m);
System.out.println(m.isSet(Flags.Flag.SEEN)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.DRAFT)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.USER)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.FLAGGED)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.RECENT)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.DELETED)+" :::::SEEN");
System.out.println(m.isSet(Flags.Flag.ANSWERED)+" :::::SEEN");

} catch (IndexOutOfBoundsException iex) {
System.out.println("Message number out of range");
}
}

public void printAllMessageEnvelopes() throws Exception {

// Attributes & Flags for all messages ..
Message[] msgs = folder.getMessages();

// Use a suitable FetchProfile
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);

for (int i = 0; i < msgs.length; i++) {
System.out.println("--------------------------");
System.out.println("MESSAGE #" + (i + 1) + ":");
dumpEnvelope(msgs[i]);

}

}

public void printAllMessages() throws Exception {

// Attributes & Flags for all messages ..
Message[] msgs = folder.getMessages();

// Use a suitable FetchProfile
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);

for (int i = 0; i < msgs.length; i++) {
System.out.println("--------------------------");
System.out.println("MESSAGE #" + (i + 1) + ":");
dumpPart(msgs[i]);
}


}


public static void dumpPart(Part p) throws Exception {
if (p instanceof Message)
//dumpEnvelope((Message)p);
System.out.println(((Message)p).getFrom()[0].toString() +" FROM:");
System.out.println(((Message)p).getRecipients(Message.RecipientType.TO)[0].toString()+" TO :");
System.out.println(((Message)p).getSentDate()+" DATE :");
System.out.println(((Message)p).isSet(Flags.Flag.SEEN)+" is seen or not");

if(true)
return;
String ct = p.getContentType();
try {
pr("CONTENT-TYPE: " + (new ContentType(ct)).toString());
} catch (ParseException pex) {
pr("BAD CONTENT-TYPE: " + ct);
}

/*
* Using isMimeType to determine the content type avoids
* fetching the actual content data until we need it.
*/
if (p.isMimeType("text/plain")) {
pr("This is plain text");
pr("---------------------------");
System.out.println((String)p.getContent());
} else {

// just a separator
pr("---------------------------");

}
}

public static void dumpEnvelope(Message m) throws Exception {
pr(" ");
Address[] a;
// FROM
if ((a = m.getFrom()) != null) {
for (int j = 0; j < a.length; j++)
pr("FROM: " + a[j].toString());
}

// TO
if ((a = m.getRecipients(Message.RecipientType.TO)) != null) {
for (int j = 0; j < a.length; j++) {
pr("TO: " + a[j].toString());
}
}

// SUBJECT
pr("SUBJECT: " + m.getSubject());

// DATE
Date d = m.getSentDate();
pr("SendDate: " +
(d != null ? d.toString() : "UNKNOWN"));


}

static String indentStr = " ";
static int level = 0;

/**
* Print a, possibly indented, string.
*/
public static void pr(String s) {

System.out.print(indentStr.substring(0, level * 2));
System.out.println(s);
}

}