Logo 
Search:

Java Forum

Ask Question   UnAnswered
Home » Forum » Java       RSS Feeds

validation of the email

  Asked By: Darcy    Date: Mar 30    Category: Java    Views: 760
  

i have a really annoying problem . i have made this
simple email program below. i am having problem with the validation
of the email. i have written a method called isAddressValid but i
don't know how or where to incorporate it it to the rest of the
program so that it checks if the email is valid. can n e 1 help
please,



import java.util.*;
class SimpleEmail {

private String sender;
private String sendermail;
private String recipient;
private String recipientmail;

private String subject;
private String content;

private String messageID; // unique id for email
private String returnPath; // a return Email if fails
private String org; //company name
private String mime; //version if encoded
private String mailer; //name of mail client used
private String contentType; //text/plain charset= US-ascii

private Date dateOfEmail;

public SimpleEmail(String s,String sm, String r,String rm,String
mi,String rp,String o, String mm, String ml, String ct,String t,
String c, Date d) {

sender = s;
sendermail = sm;
recipient = r;
recipientmail = rm;

messageID = mi;
returnPath = rp;
org = o;
mime = mm;
mailer = ml;
contentType = ct;


subject = t;
content= c;

dateOfEmail = d;
}

public void setSender(String s) {
sender = s;
if ( sender == " ")
sender = "unknown";
}
public String getSender() {
return sender;
}



public void setSenderMail(String sm) {
sendermail = sm;

isAddressValid(sendermail);



if ( sendermail == " ")
sendermail = "unknown";
}
public String getSenderMail() {
return sendermail;
}



public void setRecipient(String r) {
recipient = r;
if ( recipient == " ")
recipient = "unknown";
}
public String getRecipient() {
return recipient;
}



public void setRecipientMail(String rm) {
recipientmail = rm;
if ( recipient == " ")
recipientmail = "unknown";
}
public String getRecipientMail() {
return recipientmail;
}



public void setMessageId(String mi) {
messageID = mi;
if ( messageID == " ")
messageID = "unknown";
}
public String getMessageId() {
return messageID;
}




public void setReturnPath(String rp) {
returnPath = rp;
if ( returnPath == " ")
returnPath = "unknown";
}
public String getReturnPath() {
return returnPath;
}



public void setOrg(String o) {
org = o;
if ( org == " ")
org = "unknown";
}
public String getOrg() {
return org;
}



public void setMime(String mm) {
mime = mm;
if ( mime == " ")
mime = "unknown";
}
public String getMime() {
return mime;
}



public void setMailer(String ml) {
mailer = ml;
if ( mailer == " ")
mailer = "unknown";
}
public String getMailer() {
return mailer;
}



public void setcontentType(String ct) {
contentType = ct;
if ( contentType == " ")
contentType = "unknown";
}
public String getcontentType() {
return contentType;
}



public void setSubject(String t) {
subject = t;
if ( subject == " ")
subject = "unknown";

}
public String getSubject() {
return subject;
}

public void setContent(String c) {
content = c;
if ( content == " ")
content = "unknown";
}
public String getContent() {
return content;
}

public void setDate(Date d) {
dateOfEmail = d;
}
public Date getDate() {
return dateOfEmail;
}



boolean isAddressValid(String address){
int opPos=address.indexOf("@");
if(opPos==-1){//no @
return(false);
}
if(address.indexOf("@",opPos)!=-1){//more then one @
return(false);
}

if(address.indexOf(".")<opPos){//checks that there are no
dots //before the @
return(false);
}
if(address.indexOf(".",opPos)==-1){//checks that there is at least
one dot after the @
return(false);
}
if(address.charAt(address.length()-1)=='.'
||address.charAt(addres.length()-2)=='.'){


return(false);
}

//Here you need to check that all the characters are letters or
numbers or @ or dots.
//again return false if the flag raises up.

return(true);//if none of the flags rose up it means that the email
is valid




}



import java.util.*;
public class SimpleEmailTest
{


public static final String notKnown = "Unknown";
public static void main( String[] args )
{
SimpleEmail email; // email object to test.
String whoFromName; // sender
String fromMail;// sender email address
String whoToName; // recipient
String toMail;// recipients email address
String messageID; // unique id for email
String returnPath; // a return Email if fails
String org; //company name
String mime; //version if encoded
String mailer; //name of mail client used
String contentType; //text/plain charset= US-ascii
String subject; // subject matter
String content; // text content of email

Date recieved = new Date();

email = new SimpleEmail( notKnown, notKnown, notKnown, notKnown,
notKnown, notKnown, notKnown, notKnown, notKnown, notKnown,
notKnown, notKnown, recieved );




email.setSender( "Abc" );
email.setSenderMail
("SureshDutt@...");

email.setRecipient( "Xyz Receiver" );
email.setRecipientMail
("SheenaReciever@...");

email.setMessageId("12212.4224.3443.3");
email.setReturnPath("admin@...");
email.setOrg("Dutt Independant Traders
(DITS)");
email.setMime("Verseion 1");
email.setMailer("outlook express");
email.setcontentType("text charset= US-
ASCII");


email.setSubject( "How are you today?" );
email.setContent( "I just wrote an email
class!" );

System.out.println( "SimpleEmail: " +
"\n From: " +
email.getSender() + email.getSenderMail() +
"\n To: " +
email.getRecipient() + email.getRecipientMail() +
"\n Subject: " +
email.getSubject() +
"\n Message ID: " +
email.getMessageId() +
"\n Return Path: " +
email.getReturnPath() +
"\n Organisation: " +
email.getOrg() +
"\n MIME: " +
email.getMime() +
"\n Mailer: " +
email.getMailer() +
"\n Content Type: " +
email.getcontentType() +
"\n Date: " +
email.getDate().toString
() +
"\n Message: " +
email.getContent() + "\n");



}
}

Share: 

 

1 Answer Found

 
Answer #1    Answered By: Adali Fischer     Answered On: Mar 30

1. The construct if ( sendermail == " ") etc won't do what you think.

I would replace it with something like if ( isBlank( sendermail ) )

where isBlank is defined:

private boolean isBlank(String str)
{
if ( str == null ) return  false;
if ( str.trim().equals( "" ) ) return false
return true;
}

2. the check  .. no dots before the @ is not a valid  one
(I used to have an address  of David.Burnett@...)

3. For invalid email  addresses, throwing an exception in constructor seems to be
an option
if( !isAddressValid ( recipientmail ) )
throw new InvalidEmailAddressException( recipientmail );

 
Didn't find what you were looking for? Find more on validation of the email Or get search suggestion and latest updates.




Tagged: