Simple JavaMail Reader.java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
/**
  * A simple class to Read the email.
  */
public class SimpleMailReader
{
  public static void main(String args[])
  {
    try
    {
      String strServer=args[0];
      String strUser=args[1];
      String strPassword=args[2];
      read(strServer, strUser, strPassword);
    }
    catch (Exception ex)
    {
      System.out.println("Usage: java  SimpleMailReader"
       +" strServer strUser strPassword");
    }
    System.exit(0);
  }
  /**
    * "read" method to fetch messages and process them.
    */
  public static void read(String strServer, String strUser
   , String strPassword)
  {
    Store mystore=null;
    Folder myfolder=null;
    try
    {
      Properties p = System.getProperties();
      Session session = Session.getDefaultInstance(p, null);
      mystore = session.getStore("pop3");
      mystore.connect(strServer, strUser, strPassword);
     
      myfolder = mystore.getDefaultFolder();
      if (myfolder == null) throw new Exception("No default folder");
    
      myfolder = myfolder.getFolder("INBOX");
      if (myfolder == null) throw new Exception("No POP3 INBOX");
     
      myfolder.open(Folder.READ_ONLY);
      Message[] msg = myfolder.getMessages();
      for (int msgNumber = 0; msgNumber < msg.length; msgNumber++)
      {
        printMessage(msg[msgNumber]);       
      }
    }
    catch (Exception ex)
    {
      ex.printStackTrace();
    }
    finally
    {
     try
      {
        if (myfolder!=null) myfolder.close(false);
        if (mystore!=null) mystore.close();
      }
      catch (Exception ex2) {ex2.printStackTrace();}
    }
  }
   public static void printMessage(Message message)
  {
    try
    {
      String strfrom=((InternetAddress)message.getFrom()[0]).getPersonal();
      if (strfrom==null) strfrom=((InternetAddress)message.getFrom()[0]).getAddress();
      System.out.println("FROM: "+strfrom);
      String strsubject=message.getSubject();
      System.out.println("SUBJECT: "+strsubject);
      Part msgPart=message;
      Object content=msgPart.getContent();
      if (content instanceof Multipart)
      {
        msgPart=((Multipart)content).getBodyPart(0);
        System.out.println("[ Multipart Message ]");
      }
       String contentType=msgPart.getContentType();
       System.out.println("CONTENT:"+contentType);
      if (contentType.startsWith("text/plain")
       || contentType.startsWith("text/html"))
      {
        InputStream is = msgPart.getInputStream();
        BufferedReader reader
         =new BufferedReader(new InputStreamReader(is));
        String thisLine=reader.readLine();
        while (thisLine!=null)
        {
          System.out.println(thisLine);
          thisLine=reader.readLine();
        }
      }
      System.out.println("-----------------------------");
    }
    catch (Exception ex)
    {
      ex.printStackTrace();
    }
  } 
}
Simple JavaMail Serder.java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
/**
  * A simple email sender class.
  */
public class SimpleMailSender
{
  /**
    * MAIN method to send a message given on the command line.
    */
  public static void main(String args[])
  {
    try
    {
      String strstrSmtpServer=args[0];
      String strTo=args[1];
      String strFrom=args[2];
      String strSubject=args[3];
      String strBody=args[4];
      send(strstrSmtpServer, strTo, strFrom, strSubject, strBody);
    }
    catch (Exception ex)
    {
      System.out.println("Usage: java SimpleMailSender"
       +" strstrSmtpServer toAddress fromAddress subjectText bodyText");
    }
    System.exit(0);
  }
  /**
    * "send" method to send the message.
    */
  public static void send(String strSmtpServer, String strTo, String strFrom
   , String strSubject, String strBody)
  {
    try
    {
     java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
      Properties p = new Properties(System.getProperties());
      // -- Attaching to default Session, or we could start a new one --
      // -- Could use Session.getTransport() and Transport.connect()
      // , but assume we're using SMTP --
     
      if(strSmtpServer != null)
        {
          p.put("mail.smtp.starttls.enable","true");
         p.put("mail.smtp.host", strSmtpServer);
         p.put("mail.transport.protocol", "smtp");
        p.put("mail.smtp.starttls.enable","true");
        p.put("mail.smtp.auth", "true");
         
      }
    
      Session session = Session.getDefaultInstance(p, null);
      // -- Create a new message --
      Message msg = new MimeMessage(session);
      // -- Set the FROM and TO fields --
      msg.setFrom(new InternetAddress(strFrom));
      msg.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse(strTo, false));
      // -- We could include CC recipients too --
      // if (cc != null)
      // msg.setRecipients(Message.RecipientType.CC
      // ,InternetAddress.parse(cc, false));
      // -- Set the subject and body text --
      msg.setSubject(strSubject);
      msg.setText(strBody);
      // -- Set some other header information --
      msg.setHeader("X-Mailer", "KogentEmail");
      msg.setSentDate(new Date());
      // -- Send the message --
      Transport.send(msg);
      System.out.println("Message sent OK.");
    }
    catch (Exception ex)
    {
      ex.printStackTrace();
    }
  }
}
Sunday, November 2, 2008
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment