To fecilitate mail communication using local server with SMTP and IMAP. Can be extended as mail client
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package jMail; import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; import java.util.*; public class Mail { private String to; private String from; private String message; private String subject; private String smtpServ; private String userName; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; System.out.println("password:"+password); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; System.out.println("userName:"+userName); } /** * @return the to */ public String getTo() { return to; } /** * @param to the to to set */ public void setTo(String to) { this.to = to; } /** * @return the from */ public String getFrom() { return from; } /** * @param from the from to set */ public void setFrom(String from) { this.from = from; } /** * @return the message */ public String getMessage() { return message; } /** * @param message the message to set */ public void setMessage(String message) { this.message = message; } /** * @return the subject */ public String getSubject() { return subject; } /** * @param subject the subject to set */ public void setSubject(String subject) { this.subject = subject; } /** * @return the smtpServ */ public String getSmtpServ() { return smtpServ; } /** * @param smtpServ the smtpServ to set */ public void setSmtpServ(String smtpServ) { this.smtpServ = smtpServ; } public int sendMail(){ try { Properties props = System.getProperties(); // -- Attaching to default Session, or we could start a new one -- props.put("mail.transport.protocol", "smtp" ); props.put("mail.smtp.starttls.enable","true" ); props.put("mail.smtp.host",smtpServ); props.put("mail.smtp.auth", "true" ); Authenticator auth = new SMTPAuthenticator(); Session session = Session.getInstance(props, auth); // -- Create a new message -- Store store=session.getStore("imaps"); store.connect(smtpServ, userName,password); Folder folder=store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); Message mess[]=folder.getMessages(); for(int i=mess.length-1;i>=0;i--) { System.out.println(""+i+":"+mess[i].getFrom()[0]+"t"+mess[i].getSubject()); } Message msg = new MimeMessage(session); // -- Set the FROM and TO fields -- msg.setFrom(new InternetAddress(from)); String rec[]=to.split(","); for(int i=0;i<rec.length;i++) { System.out.println("rec:"+rec[i]); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(rec[i], false)); msg.setSubject(subject); msg.setText(message); // -- Set some other header information -- msg.setHeader("Mail", "MailApi" ); msg.setSentDate(new Date()); // -- Send the message -- Transport.send(msg); System.out.println("Message sent to"+ rec[i]+" OK." ); } return 0; } catch (Exception ex) { ex.printStackTrace(); System.out.println("Exception "+ex); return -1; } } private class SMTPAuthenticator extends javax.mail.Authenticator { @Override public PasswordAuthentication getPasswordAuthentication() { String username =userName; String pass =password; return new PasswordAuthentication(username, pass); } } }