FileDocCategorySizeDatePackage
SpamCleaner.javaAPI DocExample3772Thu Dec 15 21:50:28 GMT 2005com.oreilly.jent.javamail

SpamCleaner

public class SpamCleaner extends Object
In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you're reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O'Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product's documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: "Java Enterprise in a Nutshell, Third Edition, by Jim Farley and William Crawford with Prakash Malani, John G. Norman, and Justin Gehtland. Copyright 2006 O'Reilly Media, Inc., 0-596-10142-2." If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com.

Fields Summary
static String
mailhost
static String
smtphost
static String
redirectEmail
static String[]
badSubjects
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

 
  
        
    Properties props = new Properties(  ); 
    props.setProperty("mail.smtp.host", smtphost); 
    Session session = Session.getDefaultInstance(props, null); 
    
    try { 
      Store imapStore = session.getStore("imap"); 
      imapStore.connect(mailhost, "scott", "yu7xx"); 
      
      Folder defaultFolder = imapStore.getDefaultFolder(  ); 
      Folder inboxFolder = defaultFolder.getFolder("INBOX"); 
      inboxFolder.open(Folder.READ_WRITE); 
      
      // Assemble some search criteria, using nested OrTerm objects 
      SearchTerm spamCriteria = null; 
      for (int i=0; i<badSubjects.length; i++) { 
        SubjectTerm st = new SubjectTerm(badSubjects[i]); 
        if(spamCriteria == null) 
          spamCriteria = st; 
        else 
          spamCriteria = new OrTerm(spamCriteria, st); 
      } 
      
      Message[] msgs = inboxFolder.search(spamCriteria); 
      if (msgs != null) 
        for (int i = 0; i < msgs.length; i++) { 
          // Redirect the message 
          Message m = new MimeMessage((MimeMessage)msgs[i]); 
          m.setRecipient(Message.RecipientType.TO, 
                         new InternetAddress(redirectEmail)); 
          // Clear out the cc: field so we don't loop or anything 
          m.setHeader("CC", ""); 
          Transport.send(m); 
          
          // Now delete the original 
          System.out.println("Deleting Message " +
                             msgs[i].getMessageNumber(  ) + ":" 
                             + msgs[i].getSubject(  )); 
          msgs[i].setFlag(Flags.Flag.DELETED, true); 
        } 
      
      // Close inbox folder, with "Expunge" flag set to true 
      inboxFolder.close(true); 
      imapStore.close(  ); 
    } 
    catch (MessagingException me) { 
      me.printStackTrace(System.out); 
    }