2010-01-04 17 views
7

Estoy haciendo una aplicación Android y quiero obtener los últimos 25 correos enviados desde una cierta cuenta de correo electrónico.Descargando correos enviados desde Yahoo, Gmail y Hotmail

Para Gmail podría usar http://g4j.sourceforge.net/ y existe una API de servicio web de correo para Yahoo en http://developer.yahoo.com/mail/.

Pero no pude encontrar algo para hacerlo con Hotmail.

¿Sabes si es posible?

También me preocupa tener tantas dependencias. No sé si debería hacer algo como https://sourceforge.net/projects/mrpostman/ y hacer web scraping.

Respuesta

9

Puede descargar (o tal vez subir) correos electrónicos de varias maneras cuando se utilizan diferentes proveedores de correo electrónico. Mi experiencia con los siguientes proveedores es:

  1. Yahoo:

    • POP3: Sólo disponible para usuarios Plus (servicio de pago). No recibe mensajes nuevos, no tiene acceso a la carpeta, no envía correos; simplemente busque toda la bandeja de entrada (o todos los UID de correo electrónico). ACTUALIZACIÓN: Yahoo proporciona free POP access and forwarding para Yahoo Asia usuarios.
    • API de servicio web de correo: solo se enumeran los encabezados de correo electrónico para usuarios gratuitos pero se completa el acceso, incluido el de correo electrónico de la carpeta enviada, para usuarios Plus (servicio pago de nuevo). Por supuesto, usted es paid a commission by Yahoo si puede alentar (forzar) a los usuarios a comprar el servicio Plus si los abogados de Yahoo no les han demandado antes porque en el Web Service documentation dice: "No puede usar la API de servicio web de Yahoo! para mostrar la información de la cuenta de Yahoo! del usuario en un cliente externo de correo electrónico ".
    • Web Scraping: parece ser la única solución disponible para usuarios gratuitos de Yahoo, pero tenga en cuenta los problemas de compatibilidad que pueden surgir cuando Yahoo cambia sus páginas web. También asegúrese de retrasar los accesos de enlace porque Yahoo tiene un mecanismo de detección de raspado web en sus servidores.
  2. GMail:

    • IMAPv4: Disponible para todos los usuarios. Asegúrese de utilizar este protocolo para acceder a casi todo en GMail. Está implementado por completo; puede acceder a todos los correos entrantes y enviados e incluso enviar un correo electrónico guardándolo en la carpeta enviada. Puede usar JavaMail o cualquier otra biblioteca de cliente IMAP en Java, como Ristretto API, para hacerlo. Asegúrese de conocer las limitaciones de JavaMail antes de comenzar a usarlo para cualquier protocolo. Tiene muchas limitaciones (y errores menores) en todos los protocolos (SMTP/POP3/IMAP).
    • POP3: Disponible para todos los usuarios de GMail pero no recomendado debido a las limitaciones inherentes de POP3 (sin carpeta, no recibe mensajes nuevos).
  3. Hotmail:

    • POP3: Disponible para todos los usuarios, pero de nuevo POP3 limitaciones inherentes (ninguna carpeta, no hay correo enviado, no reciben mensajes nuevos), además de la limitación de Hotmail llamada de 15 minutos de retardo -necesario para el acceso POP3.
    • Raspado web: parece ser la única solución para acceder al correo enviado, pero nuevamente tenga en cuenta los problemas de compatibilidad que pueden surgir cuando Microsoft cambia las páginas web de Hotmail y el software de detección de raspado web que puedan existir.
  4. general IMAPv4 Proveedor:

    • En general, no todos los proveedores de soporte IMAP envió carpeta porque no es una carpeta IMAP estándar, pero la mayoría de ellos hacer esto. Eche un vistazo a la Ayuda o Preguntas frecuentes del proveedor para esta opción.
  5. proveedor POP3 Genral:

    • No hay que esperar POP3 para hacer esto porque POP3 hace todo lo posible de no chocar tanto el cliente y el servidor se deben recuperar 2 nuevos mensajes de correo electrónico desde la bandeja de entrada ;-)

Mientras tanto, no olvide que Web Scraping tiene problemas legales y está prohibido en la mayoría de los sitios web.

+0

Gracias por la información. Es en realidad un resumen de lo que he investigado, pero esto no responde a cómo buscar correos en la carpeta enviada de esos tres proveedores. – Macarse

+0

Para ser lo suficientemente directo: use web scraping para Yahoo y Hotmail (use MrPostman si todavía funciona) y trabaje con IMAP usando JavaMail (o Ristre) tto API) para GMail :) –

+0

O tal vez: no se puede hacer eso correctamente excepto para GMail, donde puede usar IMAP. – svens

0

¿Por qué no utiliza simplemente las funciones integradas de correo electrónico o los métodos de acceso estándar sobre IMAP? Supongo que usar una lib por separado para cada proveedor no funcionará bien en la práctica.

+0

¿Estás seguro de que puedo acceder a los artículos enviados en todos los proveedores que usan IMAP? – Macarse

+0

¡No, eso es para que lo descubras! ;) Pero el uso de protocolos estandarizados es ciertamente el camino a seguir, en lugar de utilizar una biblioteca potencialmente frágil para cada proveedor. –

+0

En realidad, solo gmail ofrece acceso IMAP, así que esto no funcionará :( – Macarse

1

En la aplicación web de nuestra compañía, utilizamos JavaMail para enviar correo a través de la cuenta de Gmail (API muy fácil de usar y poderosa). En el producto de JavaMail page encontré el proyecto JDAVMail. Proporciona un método de acceso para servicios de protocolo basados ​​en WebDAV. Tal vez te sea útil.

Y, para Android: javamail-android

+0

Gracias, pero JDAVMail solo resolverá hotmail. – Macarse

Cuestiones relacionadas