Inicio / Blog / JavaMail en Android
Imagen de Daniel
Daniel M. Fernandez
Comp. Science Engineer
23 Ene 2017
JavaMail
en Android

La conocida librería JavaMail en Android

Body: 

Introducción

La conocida librería JavaMail, es la encargada del manejo de correo mediante una metodología que debemos seguir sobre la misma, en este articulo pretendo llevarle trabajo con dicha librería a un ambiente Android.

Requerimiento y Configuración

  1. Tener creada un proyecto Android, ya sea sobre Eclipse, Android Studio o cualquier otro IDE de desarrollo.

  2. Incluir las librerías JavaMail correspondientes dentro del fichero build.gradle  

      1. android {
      2. packagingOptions {
      3. pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file
      4. }
      5. }
      6.  
      7. repositories {
      8. jcenter()
      9. maven {
      10. url "https://maven.java.net/content/groups/public/"
      11. }
      12. }
      13.  
      14. dependencies {
      15. compile 'com.sun.mail:android-mail:1.5.5'
      16. compile 'com.sun.mail:android-activation:1.5.5'
      17. }

       

  3. Otorgarle a nuestra aplicación el permiso para uso de internet dentro del fichero AndroidManifest.xml.

      1. <uses-permission android:name="android.permission.INTERNET">
      2. </uses-permission>

       

Implementación de funciones básicas.

Send

  1. Properties props = new Properties();//Se intancia un objeto properties.
  2. props.put("mail.smtp.host", "smtp.server.com");//se define el host del servidor smtp.
  3. props.put("mail.debug", "true");//se indica si queremos ver en consola el debug de la operación de envio
  4. props.put("mail.smtp.auth", "true");//definimos si el servidor requiere de autenticación para el envio de correo
  5. props.put("mail.smtp.port", 25);//puerto por el que escucha el servidor smtp
  6.  
  7. Session session = Session.getInstance(props);//creamos la intancia para una nueva session en el servidor smtp, pasamos el objeto props anteriormente creado como parámetros.
  8. MimeMessage msg = new MimeMessage(session);//creamos el mensaje que queremos enviar.
  9. msg.setFrom(new InternetAddress(_from));//definimos el remitente del correo
  10. InternetAddress[] addressTo = new InternetAddress[_to.length];//array de destinatarios, la variable _to, es un array de string con las direcciones de email donde queremos mandar el mismo.
  11. for (int i = 0; i < _to.length; i++) {
  12. addressTo[i] = new InternetAddress(_to[i]);//iteramos y creamos el array de direcciones destinos.
  13. }
  14. msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);//definimos recipiente del correo
  15. msg.setSubject(_subject);//asunto del correo
  16. msg.setSentDate(new Date());//fecha del correo
  17.  
  18. BodyPart messageBodyPart = new MimeBodyPart();//definimo sel cuerpo del correo como un multi part.
  19. messageBodyPart.setText(_body);
  20. _multipart.addBodyPart(messageBodyPart);
  21. msg.setHeader("X-Priority", "1");//prioridad del correo
  22.  
  23. msg.setContent(_multipart);//asignamos el cuerpo del correo al mensage
  24.  
  25. Transport.send(msg);//enviamos el correo

Read and Deled

  1. String user= "molanco@example.com";//usuario
  2. String password="xxxxx";//password
  3. Properties properties = System.getProperties();//Nuevo objeto properties,anteriormente explicado
  4. Session session = Session.getDefaultInstance(properties);//se crea la session
  5. Store store = session.getStore("pop3");//se crea un objeto store y se define para un servidor pop3.
  6. store.connect("pop.molanco.com",user,password);//nos conectamos al servidor pop3
  7. Folder folder = store.getFolder("inbox");// se lee el buzón de entrada y se almacena en el objeto folder.
  8. folder.open(Folder.READ_WRITE);//se abre el objeto folder con permiso de lectura y escritura.
  9.  
  10. Message[] msg = folder.getMessages();//se toman los correos del buzón de entrada y se guardan en un array de menssage.
  11. msg[0].setFlag(FLAGS.Flag.DELETED, true); //se manda a eliminar el primer correo.

Conclusión

Con estos ejemplos visualizamos las 3 operaciones básica del trabajo con correos desde android (envío,lectura y borrado), recomendamos que estas operaciones se realicen en un hilo separado del principal de la aplicación, para esto recomendamos que lean el articulo en el que detallamos el trabajo con hilos desde una aplicación android ( Hilos en Android).