Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package us.d8u;
- import java.io.PrintWriter;
- import java.util.Properties;
- import javax.mail.AuthenticationFailedException;
- import javax.mail.Flags.Flag;
- import javax.mail.Folder;
- import javax.mail.internet.InternetAddress;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.NoSuchProviderException;
- import javax.mail.Session;
- import javax.mail.Store;
- import org.joda.time.DateTime;
- import org.apache.commons.cli.CommandLine;
- import org.apache.commons.cli.CommandLineParser;
- import org.apache.commons.cli.GnuParser;
- import org.apache.commons.cli.HelpFormatter;
- import org.apache.commons.cli.Options;
- import org.apache.commons.cli.ParseException;
- import org.apache.log4j.Logger;
- import org.apache.log4j.Level;
- public class App
- {
- private static Logger logger = Logger.getLogger("us.d8u.App");
- private static boolean isValid(Message msg) throws MessagingException {
- DateTime received = new DateTime(msg.getReceivedDate());
- InternetAddress from = (InternetAddress)msg.getFrom()[0];
- if (received.plusDays(30).isAfterNow() == false) return false;
- //if (from.getAddress().equalsIgnoreCase(emailAddress)) return false;
- if (msg.getFolder().getName().contains("Sent")) return false;
- return true;
- }
- public static void ProcessOptions(String[] args) throws ParseException {
- Options options = new Options();
- options.addOption("u", "user", true, "Gmail username");
- options.addOption("p", "password", true, "Gmail passsword");
- options.addOption("v", "verbose", false, "Be verbose");
- CommandLineParser parser = new GnuParser();
- CommandLine line = parser.parse(options, args);
- if (line.hasOption("user")) {
- System.setProperty("us.d8u.user", line.getOptionValue("user"));
- }
- if (line.hasOption("password")) {
- System.setProperty("us.d8u.password", line.getOptionValue("password"));
- }
- if (line.hasOption("verbose")) {
- logger.setLevel(Level.ALL);
- }
- }
- public static void main( String[] argv )
- {
- Options options = new Options();
- options.addOption("u", "user", true, "Gmail username");
- options.addOption("p", "password", true, "Gmail passsword");
- options.addOption("v", "verbose", false, "Be verbose");
- try {
- ProcessOptions(argv);
- } catch (Throwable t) {
- final HelpFormatter formatter = new HelpFormatter();
- formatter.printHelp("Gmail", options);
- System.exit(-1);
- }
- Properties props = System.getProperties();
- props.setProperty("mail.store.protocol", "imaps");
- Session session = Session.getDefaultInstance(props, null);
- Store store = null;
- try {
- store = session.getStore("imaps");
- } catch (NoSuchProviderException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- store.connect("imap.gmail.com", System.getProperty("us.d8u.user"), System.getProperty("us.d8u.password"));
- } catch (AuthenticationFailedException e) {
- final HelpFormatter formatter = new HelpFormatter();
- formatter.printHelp("Gmail", options);
- System.exit(-1);
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- // see which folders are available
- try {
- for (Folder fold : store.getDefaultFolder().list("*")) {
- logger.debug(fold.getName());
- }
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- Folder folder = null;
- try {
- folder = store.getFolder("INBOX");
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- folder.open(Folder.READ_WRITE);
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- for (Message msg : folder.getMessages()) {
- if (!isValid(msg)) {
- msg.setFlag(Flag.DELETED, true);
- }
- }
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- folder.close(true); // expunge messages
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- folder = store.getFolder("Sent Mail");
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- logger.debug("In sent mail");
- try {
- folder.open(Folder.READ_WRITE);
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- for (Message msg : folder.getMessages()) {
- if (msg.getSubject().equals("Thought you might be interested")) {
- msg.setFlag(Flag.DELETED, true);
- }
- }
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- folder.close(true);
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- try {
- store.close();
- } catch (MessagingException e) {
- logger.fatal(e.getMessage(), e);
- System.exit(-1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment