Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Tuesday, December 11, 2007

java code for Email Bean

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class EmailBean {

//defaults
private final static String DEFAULT_CONTENT = "Unknown content";

private final static String DEFAULT_SUBJECT = "Unknown subject";

private static String DEFAULT_SERVER = null;

private static String DEFAULT_TO = null;

private static String DEFAULT_FROM = null;
static {
java.util.ResourceBundle bundle = java.util.ResourceBundle
.getBundle("com.java2s.mailDefaults");

DEFAULT_SERVER = bundle.getString("DEFAULT_SERVER");
DEFAULT_TO = bundle.getString("DEFAULT_TO");
DEFAULT_FROM = bundle.getString("DEFAULT_FROM");

System.out.println("DEFAULT_SERVER: " + DEFAULT_SERVER);
}

//JavaBean properties
private String smtpHost;

private String to;

private String from;

private String content;

private String subject;

public void sendMessage() throws Exception {

Properties properties = System.getProperties();

//populate the 'Properties' object with the mail
//server address, so that the default 'Session'
//instance can use it.
properties.put("mail.smtp.host", smtpHost);

Session session = Session.getDefaultInstance(properties);

Message mailMsg = new MimeMessage(session);//a new email message

InternetAddress[] addresses = null;

try {

if (to != null) {

//throws 'AddressException' if the 'to' email address
//violates RFC822 syntax
addresses = InternetAddress.parse(to, false);

mailMsg.setRecipients(Message.RecipientType.TO, addresses);

} else {

throw new MessagingException(
"The mail message requires a 'To' address.");

}

if (from != null) {

mailMsg.setFrom(new InternetAddress(from));

} else {

throw new MessagingException(
"The mail message requires a valid 'From' address.");

}

if (subject != null)
mailMsg.setSubject(subject);

if (content != null)
mailMsg.setText(content);

//Finally, send the mail message; throws a 'SendFailedException'
//if any of the message's recipients have an invalid address
Transport.send(mailMsg);

} catch (Exception exc) {

throw exc;

}

}//sendMessage

private void handleMessages(HttpServletRequest request, PrintWriter out)
throws IOException, ServletException {

HttpSession httpSession = request.getSession();
String user = (String) httpSession.getAttribute("user");
String password = (String) httpSession.getAttribute("pass");
String popAddr = (String) httpSession.getAttribute("pop");

Store popStore = null;
Folder folder = null;

if (!check(popAddr))
popAddr = EmailBean.DEFAULT_SERVER;

try {

if ((!check(user)) || (!check(password)))
throw new ServletException(
"A valid username and password is required to check email.");

Properties properties = System.getProperties();

Session session = Session.getDefaultInstance(properties);

popStore = session.getStore("pop3");

popStore.connect(popAddr, user, password);

folder = popStore.getFolder("INBOX");

if (!folder.exists())
throw new ServletException(
"An 'INBOX' folder does not exist for the user.");

folder.open(Folder.READ_ONLY);

Message[] messages = folder.getMessages();
int msgLen = messages.length;

if (msgLen == 0)
out
.println("

The INBOX folder does not yet contain any email messages.

");

for (int i = 0; i < msgLen; i++) {
displayMessage(messages[i], out);
out.println("

");
}

} catch (Exception exc) {

out
.println("

Sorry, an error occurred while accessing the email messages.

");
out.println(exc.toString());

} finally {
try {
if (folder != null)
folder.close(false);

if (popStore != null)
popStore.close();
} catch (Exception e) {
}
}
}//handleMessages

private void displayMessage(Message msg, PrintWriter out)
throws MessagingException, IOException {

if (msg != null && msg.getContent() instanceof String) {

if (msg.getFrom()[0] instanceof InternetAddress) {
out.println("Message received from: "
+ ((InternetAddress) msg.getFrom()[0]).getAddress()
+ "
");
}
out.println("Message received on: " + msg.getReceivedDate()
+ "
");
out.println("Message content type: " + msg.getContentType()
+ "
");
out.println("Message content type: " + (String) msg.getContent());
} else {

out
.println("

The received email message was not of a text content type.

");

}

}//displayMessage

public void setSmtpHost(String host) {
if (check(host)) {
this.smtpHost = host;
} else {
this.smtpHost = EmailBean.DEFAULT_SERVER;
}
}//setTo

public void setTo(String to) {
if (check(to)) {
this.to = to;
} else {
this.to = EmailBean.DEFAULT_TO;
}
}//setTo

public void setFrom(String from) {
if (check(from)) {
this.from = from;
} else {
this.from = EmailBean.DEFAULT_FROM;
}
}//setFrom

public void setContent(String content) {
if (check(content)) {
this.content = content;
} else {
this.content = EmailBean.DEFAULT_CONTENT;
}
}//setContent

public void setSubject(String subject) {
if (check(subject)) {
this.subject = subject;
} else {
this.subject = EmailBean.DEFAULT_SUBJECT;
}
}//setSubject

private boolean check(String value) {

if (value == null || value.equals(""))
return false;

return true;
}
}

No comments: