Advertisement
Guest User

Untitled

a guest
Sep 1st, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.33 KB | None | 0 0
  1. package tools.email;
  2.  
  3. import javax.mail.*;
  4. import javax.mail.internet.InternetAddress;
  5. import java.util.*;
  6.  
  7. import static org.junit.Assert.fail;
  8.  
  9.  
  10. public class Email {
  11.     private String host = null;
  12.     private String user = null;
  13.     private String password = null;
  14.     private List<HashMap<String, String>> listMessages = new ArrayList<>();
  15.  
  16.  
  17.     public Email(String userLogin, String userPassword, String host) {
  18.         this.host = host;
  19.         this.user = userLogin;
  20.         this.password = userPassword;
  21.     }
  22.  
  23.     private void readEmail(boolean delete) {
  24.         Map<String, String> itemMessage = new HashMap<>();
  25.         try {
  26.             Properties properties = System.getProperties();
  27.             properties.setProperty("mail.pop3.ssl.enable", "false");
  28.             properties.setProperty("mail.pop3.starttls.enable", "true");
  29.             properties.setProperty("mail.pop3.starttls.required", "true");
  30.             properties.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  31.             properties.setProperty("mail.pop3.socketFactory.fallback", "false");
  32.             properties.setProperty("mail.pop3.host", host);
  33.             properties.setProperty("mail.pop3.user", user);
  34.             properties.setProperty("mail.pop3.password", password);
  35.             properties.setProperty("mail.pop3.port", "995");
  36.             properties.setProperty("mail.pop3.auth", "true");
  37.  
  38.             Session session = Session.getDefaultInstance(properties);
  39.             Store store = session.getStore("pop3");
  40.             store.connect(host, user, password);
  41.             Folder folder = store.getFolder("inbox");
  42.             folder.open(Folder.READ_WRITE);
  43.             Message[] messages = folder.getMessages();
  44.             for (int i = 0; i < messages.length; i++) {
  45.                 if (delete) {
  46.                     messages[i].setFlag(Flags.Flag.DELETED, true);
  47.                     continue;
  48.                 }
  49.                 itemMessage.put("From", InternetAddress.toString(messages[i].getFrom()));
  50.  
  51.                 itemMessage.put("Reply-to", InternetAddress.toString(
  52.                                 messages[i].getReplyTo())
  53.                 );
  54.  
  55.                 itemMessage.put("to", InternetAddress.toString(
  56.                                 messages[i].getRecipients(Message.RecipientType.TO))
  57.                 );
  58.  
  59.                 itemMessage.put("CC", InternetAddress.toString(
  60.                                 messages[i].getRecipients(Message.RecipientType.CC))
  61.                 );
  62.  
  63.                 itemMessage.put("BCC", InternetAddress.toString(
  64.                                 messages[i].getRecipients(Message.RecipientType.BCC))
  65.                 );
  66.                 itemMessage.put("Subject", messages[i].getSubject());
  67.  
  68.                 itemMessage.put("Content", messages[i].getContent().toString());
  69.                 listMessages.add((HashMap<String, String>) itemMessage);
  70.             }
  71.             folder.close(true);
  72.             store.close();
  73.         } catch (Exception e) {
  74.             e.printStackTrace();
  75.             fail("Не удалось открыть почту");
  76.  
  77.         }
  78.     }
  79.  
  80.     public List<HashMap<String, String>> getListMessages() {
  81.         readEmail(false);
  82.         return this.listMessages;
  83.     }
  84.  
  85.     public void cleanEmail() {
  86.         readEmail(true);
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement