Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package model;
- import java.util.HashMap;
- import java.util.Properties;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- import javax.mail.Authenticator;
- import javax.mail.Folder;
- import javax.mail.Store;
- public class MailAPI {
- private Properties props;
- private Session sess;
- private MimeMessage mimeMsg;
- private Store store;
- private Folder folder;
- private Message[] msgs;
- private String host;
- private String from;
- private char[] pwd;
- private String to;
- private String errorMsg;
- public MailAPI() {
- this.errorMsg = "";
- this.host = "pop.gmail.com";
- try {
- this.loadProperties();
- this.loadDefaultSender();
- this.loadSession();
- this.loadMimeMessage();
- } catch (Exception e) {
- errorMsg += "API initialization error: "+e.getMessage();
- }
- }
- public MailAPI(String prmEmail, char[] prmPassword){
- this.errorMsg = "";
- this.host = "pop.gmail.com";
- try {
- this.loadProperties();
- this.setSenderEmail(prmEmail);
- this.setSenderPassword(prmPassword);
- this.loadSession();
- this.loadMimeMessage();
- } catch (Exception e) {
- errorMsg += "API initialization error: "+e.getMessage();
- }
- }
- public String getError(){
- return errorMsg;
- }
- public String getTo(){
- return this.to;
- }
- public String getFrom(){
- return this.from;
- }
- public boolean emptyPassword(){
- return pwd.equals(null);
- }
- public void setSenderEmail(String prmEmail){
- from = prmEmail;
- }
- public void setSenderPassword(char[] prmPwd){
- pwd = prmPwd;
- }
- public void setRecipient(String prmEmail){
- to = prmEmail;
- }
- private void loadDefaultSender() throws Exception{
- this.from = "email@gmail.com"; // email
- this.pwd = new char[]{'','',''}; // password
- }
- public void getEmails(){
- try {
- store = sess.getStore("pop3s");
- store.connect(host, from, String.valueOf(pwd));
- folder = store.getFolder("INBOX");
- folder.open(Folder.READ_ONLY);
- msgs = folder.getMessages();
- System.out.println("messages.length--- " + msgs.length);
- for (int i = 0, n = msgs.length; i < n; i++) {
- Message message = msgs[i];
- System.out.println("---------------------------------");
- System.out.println("Email Number " + (i + 1));
- System.out.println("Subject: " + message.getSubject());
- System.out.println("From: " + message.getFrom()[0]);
- System.out.println("Text: " + message.getContent().toString());
- }
- //close the store and folder objects
- folder.close(false);
- store.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void sendMsg(String prmSub, String prmMsg){
- try {
- mimeMsg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
- mimeMsg.setSubject(prmSub);
- mimeMsg.setText(prmMsg);
- Transport.send(mimeMsg);
- } catch (MessagingException e) {
- throw new RuntimeException(e);
- }
- }
- private void loadMimeMessage() throws Exception{
- mimeMsg = new MimeMessage(sess);
- }
- private void loadProperties() throws Exception{
- props = new Properties();
- //for SMTP
- props.put("mail.smtp.host", "smtp.gmail.com");
- props.put("mail.smtp.socketFactory.port", "465");
- props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.port", "465");
- //for POP3
- props.put("mail.store.protocol", "pop3");
- props.put("mail.pop3.host", "pop.gmail.com");
- props.put("mail.pop3.port", "995");
- props.put("mail.pop3.starttls.enable", "true");
- }
- private void loadSession() throws Exception{
- sess = Session.getDefaultInstance(props,new APIAuth());
- }
- private class APIAuth extends Authenticator{
- @Override
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(from, String.valueOf(pwd));
- }
- }
- }
Add Comment
Please, Sign In to add comment