Este fin de semana me decidí a poner un poco de orden en mis cuentas de correo; Una de las cosas que me obligó a ello es que mi cuenta paga de Yahoo expiró y aún ando debatiendo si debo pagar $20 por una cuenta de correo que no ofrece nada por encima de Gmail. Al momento de revizar mi cuenta de Gmail me encuentro con que estoy usando por encima de 1 GB en correo con más de 40000 correos.
Si, es increíble la cantidad de basura que se acumula en dos años 🙂
Definitivamente no estaba dispuesto a perder mi tiempo borrando tal cantidad de correos a mano, en vez de eso me decicí a automatizar la tarea usando Java y el hecho de que Gmail soporta POP / IMAP (Javamail cuenta con accesso a IMAP comp arte de su API). Una vez leido un poco abrí mi Eclipse y el resultado es el código que viene a continuación:
package com.kodegeek.blog.mail;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Session;
import javax.mail.Flags.Flag;
import javax.mail.internet.MimeMessage;
import javax.mail.Message;
import javax.mail.Folder;
import javax.mail.MessagingException;
import javax.mail.Store;
import java.io.FileInputStream;
/**
* I wrote this program to erase ALL the email on my GMAIL account. I have over 40,000 email so manually doing so was not an option :)
* Please check the following resources:
*
-
*
- http://java.sun.com/products/javamail/javadocs/index.html *
- http://java.sun.com/developer/onlineTraining/JavaMail/contents.html *
- http://java.sun.com/products/javamail/javadocs/com/sun/mail/imap/package-summary.html *
- http://java.sun.com/products/javamail/downloads/index.html *
-
*
- mail.user=name.lastname@gmail.com *
- mail.password=zzz *
- mail.store.host=pop.imap.gmail.com *
- mail.store.protocol=imap *
- mail.imap.port=993 *
- mail.imap.socketFactory.port=993 *
- mail.imap.socketFactory.class=javax.net.ssl.SSLSocketFactory *
Correr el código es trivial, asegurese de tener el JAR de Javamail en el $CLASSPATH y haga algo como esto:
java com.kodegeek.blog.mail.ImapBulkEraser -Dmail.user=name.lastname@gmail.com -Dmail.password=XXXX -Dmail.store.host=imap.gmail.com -Dmail.store.protocol=imap -Dmail.store.folder=INBOX -Dmail.imap.port=993 -Dmail.imap.socketFactory.port=993 -Dmail.imap.socketFactory.class=javax.net.ssl.SSLSocketFactory
El programa no es perfecto, ya que de vez en cuando me conseguí con la siguiente error:
NFO: Set delete flag for mail subject: 'Deploying webapps in embedded environment', folder: 'tomcat-user'
Dec 28, 2008 5:40:18 PM com.kodegeek.blog.mail.ImapBulkEraser main
WARNING: There was a problem erasing the message, ignoring
javax.mail.MessagingException: Failed to load IMAP envelope
at com.sun.mail.imap.IMAPMessage.loadEnvelope(IMAPMessage.java:1069)
at com.sun.mail.imap.IMAPMessage.getSubject(IMAPMessage.java:256)
at com.kodegeek.blog.mail.ImapBulkEraser.main(ImapBulkEraser.java:83)
Dec 28, 2008 5:40:18 PM com.kodegeek.blog.mail.ImapBulkEraser main
Sin embargo esos no son todos los correos 🙂
Como siempre el código fuente de este programa es GPL y se puede bajar desde CVS.
One thought on “¿Como borrar 40000 correos en Gmail? Fácil, usando Javamail e IMAP”
Comments are closed.