Alek Modi

Alek Modi
Follow You Heart!

Sunday, September 11, 2011

#4. Socket Prgrmming | MailClient Source Code.


//Message.java
//Generating Header and message body

import java.util.*;
import java.text.*;

public class Message {
    /* The headers and the body of the message. */
    public String Headers;
    public String Body;

    /* Sender and recipient. With these, we don't need to extract them
       from the headers. */
    private String From;
    private String To;

    /* To make it look nicer */
    private static final String CRLF = "\r\n";

    /* Create the message object by inserting the required headers from
       RFC 822 (From, To, Date). */
    public Message(String from, String to, String subject, String text) {
/* Remove whitespace */
From = from.trim();
To = to.trim();
Headers = "From: " + From + CRLF;
Headers += "To: " + To + CRLF;
Headers += "Subject: " + subject.trim() + CRLF;

/* A close approximation of the required format. Unfortunately
  only GMT. */
SimpleDateFormat format =
   new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'");
String dateString = format.format(new Date());
Headers += "Date: " + dateString + CRLF;
Body = text;
    }

    /* Two functions to access the sender and recipient. */
    public String getFrom() {
return From;
    }

    public String getTo() {
return To;
    }

    /* Check whether the message is valid. In other words, check that
       both sender and recipient contain only one @-sign. */
    public boolean isValid() {
int fromat = From.indexOf('@');
int toat = To.indexOf('@');

if(fromat < 1 || (From.length() - fromat) <= 1) {
   System.out.println("Sender address is invalid");
   return false;
}
if(toat < 1 || (To.length() - toat) <= 1) {
   System.out.println("Recipient address is invalid");
   return false;
}
if(fromat != From.lastIndexOf('@')) {
   System.out.println("Sender address is invalid");
   return false;
}
if(toat != To.lastIndexOf('@')) {
   System.out.println("Recipient address is invalid");
   return false;
}
return true;
    }
 
    /* For printing the message. */
    public String toString() {
String res;

res = Headers + CRLF;
res += Body;
return res;
}
}

No comments:

Post a Comment