Enviar correo internamente usando JavaMail API


En realidad no es demasiado difícil crear un aplicación capaz de enviar correos electrónicos usando el IDE de Android Studio  .De hecho gracias al APi de Javmail   podremos enviar e-mails sin utilizar la aplicación de correo electrónico que android incluye por defecto utilizando javamail API para crear nuestro propio email del remitente herramientas que enviará correo internamente.

Tenemos que seguir los pasos que se dan a continuación:

1. Descargar los archivos de biblioteca de api de java.

Tenemos que descargar  tres   librerías java: 

    1. activation.jar
    2. mail.jar.
    3.  additionnal.jar

Lo puede descargar de Clic aquí.

2 Ahora crear una  app en Android studio

3-Ir a la carpeta del proyecto -> aplicación -> libs y agregue todos los archivos jar en libs ahora uno por uno, haga clic en biblioteca de archivos en la opción haga clic en Agregar como biblioteca en todos los archivos jar.

libs

También puede Agregar biblioteca por otro camino, pero lo  importante es que incluya esta tres librerías:

  1. activation.jar
  2. mail.jar.
  3.  additionnal.jar

Ir a archivo >Proyecto estructura > seleccione aplicación> opción derecha haga clic en dependencias ahora haga clic en el botón de pulse(+) para agregar > seleccione dependencia de archivo> archivo seleccione Biblioteca > OK.

addjar

4. Ahora abrir el archivo manifest.xml y poner los permisos de internet.

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

Ahora busque manifiesto está buscando como.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sp.sendmailinternally">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

4. Ahora abrael fichero  activity_main.xml para crear el archivo de diseño agregar después de código.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.sp.sendmailinternally.MainActivity">
    <EditText
        android:id="@+id/edittext_recipient_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Recipient Email"
        android:textSize="18sp" />
    <EditText
        android:id="@+id/edittext_subject"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Subject"
        android:textSize="18sp" />
    <EditText
        android:id="@+id/edittext_message"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="start"
        android:hint="Message"
        android:textSize="18sp" />
    <Button
        android:id="@+id/btn_send_mail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Send Mail"
        android:textAllCaps="false" />
</LinearLayout>

5. Cree la  clase de Asyntask para el envío de llamada correo API.

package com.sp.sendmailinternally;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
 * Created by ps205 on 3/1/17.
 */
public class SendMailAsynTask extends AsyncTask<Void, Void, Void> {
    //Declaring Variables
    private Context context;
    private Session session;
    //Information to send email
    private String email;
    private String subject;
    private String message;
    //Progressdialog to show while sending email
    private ProgressDialog progressDialog;
    //Class Constructor
    public SendMailAsynTask(Context context, String email, String subject, String message) {
        //Initializing variables
        this.context = context;
        this.email = email;
        this.subject = subject;
        this.message = message;
    }
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        //Showing progress dialog while sending email
        progressDialog = ProgressDialog.show(context, "Sending message", "Please wait...", false, false);
    }
    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        //Dismissing the progress dialog
        progressDialog.dismiss();
        //Showing a success message
        Toast.makeText(context, "Message Sent", Toast.LENGTH_LONG).show();
    }
    @Override
    protected Void doInBackground(Void... params) {
        //Creating properties
        Properties props = new Properties();
        //Configuring properties for gmail
        //If you are not using gmail you may need to change the values
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");
        //Creating a new session
        session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {
                    //Authenticating the password
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(Config.EMAIL, Config.PASSWORD);
                    }
                });
        try {
            //Creating MimeMessage object
            MimeMessage mm = new MimeMessage(session);
            //Setting sender address
            mm.setFrom(new InternetAddress(Config.EMAIL));
            //Adding receiver
            mm.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
            //Adding subject
            mm.setSubject(subject);
            //Adding message
            mm.setText(message);
            //Sending email
            Transport.send(mm);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return null;
    }
}

6. Ahora abra MainActivity.java y agregue el siguiente código.

package com.sp.sendmailinternally;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
    EditText edittext_recipient_id, edittext_subject, edittext_message;
    Button btn_send_mail;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //initializr vista para encontar vista por id
        edittext_recipient_id = (EditText) findViewById(R.id.edittext_recipient_id);
        edittext_subject = (EditText) findViewById(R.id.edittext_subject);
        edittext_message = (EditText) findViewById(R.id.edittext_message);
        btn_send_mail = (Button) findViewById(R.id.btn_send_mail);
//activar un listener  onclick en un  boton
        btn_send_mail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //get  input data from view
                String mRecipientMail = edittext_recipient_id.getText().toString();
                String mSubject = edittext_subject.getText().toString();
                String mMessage = edittext_message.getText().toString();
                new SendMailAsynTask(MainActivity.this, mRecipientMail, mSubject, mMessage).execute();
//llama al contructor de send mail asyntask mediante el envio de un parametroperameter } }); } }

7. Ya puede construir y ejecutar la aplicación  

Nota:- cuando ponga su id debe ser accesible acceso menos seguro aplicaciones .Para cambiar configuración para motivos de seguridad de correo vaya a cambiar la configuración   y actiíela .

 

sendmail1

Por cierto todo el código  esta disponible en descargar código fuente

 

 

 

Backup automatico gratuito de fotos y videos para su smartphone


En efecto todas aquellas personas que tengan contratado Movistar Fusión y tarifa de contrato 20 Plus pueden usar sin coste adicional de almacenamiento ilimitado  la nube de Movistar Cloud, un servicio de almacenamiento en la nube que permite  guardar seguros todos sus contenidos generados desde su smartphone ( foto, videos,audios , etc )   gracias  a la app  Movistar Cloud disponible tanto para IoS ,como para Android o para pc.

 En caso de no cumplir esas condiciones , la tarifa  es  3€ al mes, pero tenemos que tener en cuenta de que no hay  limite en cuanto al tamaño máximo  disponible.

Por cierto,  no solo es posible visualizar sus contenidos de otras nubes desde la misma aplicación,  sino que también se pueden salvaguardar estos  contenidos también  en  Movistar Cloud ( por ejemplo fotos, audios   y  vídeos de whtasapp o incluso contenidos de gmail)

https://youtu.be/0xpvdFtiurc?list=PLiM4HTmcqpD1Mnq7YgLheEGgeG2rUAnwS

En efecto, gracias  al servicio de Movistar Cloud  podemos salvaguardar todos los contenidos  que generamos en nuestro smartphone ( tanto propios como los del correo o incluso los de redes sociales como Whatsapp ) en un espacio ilimitado sin peligro de perder la información, y lo que mas importante : con criterios muy fuertes de seguridad gracias a  un  alto nivel de encriptación , libres de virus y   mobile connect para las validaciones de usuarios .

La capacidad de almacenamiento ilimitado se suscribe bajo un modelo de suscripción mensual, el cual se renueva automáticamente mes a mes. Como comentábamos ,dependiendo del tipo de contrato que se tenga con Movistar podrá optar al servicio de manera gratuita o pagando una cuota por mes natural.

Estas son todas las posibilidades ;

  • Si el contrato es Fusión o Contrato 20 Plus, tanto si es una línea adicional o no, puede acceder sin ningún coste adicional a Movistar Cloud Ilimitado. Con las tarifas #15 y #25 también es gratuito.
  • Si su tarifa de móvil es Contrato 2, Contrato 5 o Contrato 5 Plus o  otras puedes contratar Movistar Cloud Ilimitado con un coste adicional de 3€/mes por cada línea móvil con el que lo contrates.
  •  Si su tarifa es de Prepago no podrá disfrutar de Movistar Cloud.

Y estos son los requisitos e incompatibilidades:

  • Tener una línea móvil con Movistar, aunque solo podrá disfrutar de una cuenta de Movistar Cloud por cada línea móvil que tenga.Pueden disfrutar de Movistar Cloud todas las líneas de su Fusión o tarifas.
  • Que la línea móvil sea de contrato, no de tarjeta.
  • Si tiene un contrato Fusión podrá acceder a tantas cuentas de Movistar Cloud como líneas moviles tenga  y con salvaguarda de contenido  diferenciado y separado  para que cada miembro de la familia mantenga su privacidad .
  • No hay compromisos de permanencia de modo que se puede solicitar la baja cuando desees, sin penalización en tu factura .!Ojo! , una vez se ejecute la baja se disponen de 20 días para descarga todos los contenidos desde la aplicación web en https://micloud.movistar.es.. Después sí, los contenidos se perderán definitivamente. )

Si se cumplen estos requisitos se puede acceder  al cloud de Movistar con almacenamiento ilimitado ( donde puede guardar sus contenidos en la nube y acceder a ellos desde cualquier dispositivo en cualquier lugar)  simplemente  instalando la app  e   ingresando el numero del móvil asociado al contrato y siguiendo los  pasos que  vamos a   ver a continuación 

Acceso vía  samartphone

La vía natural   de acceder a Movistar Cloud es desde un smartphone o tablet con sistema operativo Android (4.x y superior), iOS (6.x, 7.x, 8.x y superior).

Para disfrutar de Movistar Cloud en un smartphone y/o tablet, tenemos que descargar la aplicación de Movistar Cloud a través de la app store correspondiente:

El aspecto del interfaz , como vemos mas abajo, es muy simular al ofrecido por el que podemos ver en la web( https://micloud.movistar.es/ui/jsp/login.jsp)  , pero lo mas destacado es la  facilidad genial para permitirnos hacer un backup  y posterior borrado  ( si lo deseamos )  de todo el contenido del terminal  sobre la nube  usando una conexión wifi, poniendo a salvo  a si   nuestros preciados datos.

Como podremos  ver el manejo del  interfaz es  fácil e intuitivo      permitiendo enviar y compartir compartir fotos, vídeos o documentos por email, whatsapp o redes sociales sirviendo ademas para visualizar sus fotos y vídeos de las cuentas de Facebook o Instagram, archivos de Dropbox o incluso archivos anexados a sus emails de Gmail de manera inmediata.

Es de destacar   que no solo permite hacer un backup de nuestros contenidos  en la nube  : también permite una vez comprobado que esos contenidos estan salvados   borrarlos del smartphone liberando así un preciado espacio de almacenamiento ( ideal sobretodo si tenemos un dispositivo con pocos recursos y necesitamos liberarlo y no almacenar tantas cosas)

Por cierto,  si tiene problemas , ponen a nuestra disposición un email de contacto para posibles problemas :[email protected], ( hay que indicar nombre y apellidos titular, NIF, nº de línea móvil, modelo dispositivo, versión de sistema operativo y un breve resumen de lo que ocurre).

 

Acceso desde la web

Veamos ahora  los pasos para configurar nuestra cuenta de Movistar Cloud suponiendo que cumplamos todos los requisitos anteriormente comentados:

  1. Accedemos al web de movistar cloud https://micloud.movistar.es/
  2. Pinchamos en Iniciar Sesión
  3. Ahora introducimos el numero móvil asociado al contrato fusión
  4. Muy importante : introducir en el apartado anterior el numero móvil : (NO  el numero fijo )
  5. Ahora en el móvil aceptaremos la conexión con mobile connect
  6. Aceptaremos en el móvil  el acceso para permitir el acceso mediante Mobile connect  .Recibiremos un SMS de confirmación en caso de demorar la validación desde el propio móvil ( por ejemplo si no tenemos instalado mobile connect o la app de Movistar Cloud) 
  7. En caso de primer acceso  desde la pagina donde accedimos nos pedirían un e-mail que nos servirá para el login de acceso  y estaria activado! desde la web de modo que nos volveríamos a ir a la pagina https://micloud.movistar.es/
  8. En caso afirmativo ya podremos disfrutar del servicio Movistar  Cloud desde un navegador

Desde el interfaz  web hay opciones muy interesantes:

  • Realizar un acopia de seguridad  de fotos  y videos que tengamos en nuestro equipo
  • Organizar las fotos en Albunes
  • Ver todo nuestro contenido de  diferentes fuentes  desde un único sitio  usando una linea del tiempo 
  • Eliminar contenido
  • Compartir contenido con familiares  o amigos
  • Buscar contenido
  • Seleccionar  las conexiones  con facebook, Dropbox, Gmail  o Instagram
  • Comprobar el espacio eliminado  y eliminarlo ( Mi plan de Movsitar Cloud->Almacenamiento total)
  • Comprobar los dispositivos con accesos y quitarles el acceso si no procede
  • Descargar la app para ordenador
  • Ver los datos del perfil
  • ETC.

 

 

Los requisitos del ordenador son Windows 7 o superior para pc’s o Mac OS IX o superior y en cuanto a navegadores Mozilla Firefox v25 o posterior, Google Chrome v31 o posterior, o Internet Explorer v9 o posterior.

 

 

Aplicación para ordenador

También se puede instalar la aplicación Movistar Cloud en un  ordenador . Un avez instalada se  puede acceder a ella desde la barra de tareas si su ordenador es un PC o desde el Dock si su ordenador es un Mac y podemos  guardar en su Cloud tus fotos favoritas, videos, música y cualquier otro tipo de archivo así como tus contactos y calendarios de Microsoft Outlook y sincronizarlo con otros dispositivos.

Desde la  app podemos mover a la carpeta Movistar Cloud de su ordenador los archivos (imágenes, vídeos, canciones, y documentos de cualquier tipo) que nosgustaría añadir a su cuenta de Movistar Cloud (su Cloud) y podrá acceder a ellos desde el portal o desde cualquier otro dispositivo conectado a tu Cloud.

Los archivos procedentes de su Cloud (cargados a través del portal o de otros dispositivos) se auto-descargan en la misma carpeta si seleccionas «Contenidos móviles y web» en la opción «Cambiar Preferencias» de la aplicación Movistar Cloud para PC.

En esta aplicación también puede configurar Movistar Cloud para que guarde determinadas carpetas de su ordenador: así cualquier cambio de archivos de esas carpetas se reflejará automáticamente en su Cloud.

Si selecciona la opción de sincronización de contactos y calendario dentro de las preferencias de la aplicación para PC, sus datos de Outlook también se guardarán y estarán disponibles en el portal y en todos sus dispositivos  de modo que cualquier cambio en un sitio se reflejaría automáticamente en los demás dispositivos.

Por cierto la  app ,  la podemos descargar una vez estemos validados  en un navegador desde la propia pestaña de nuestro perfil desde la barra izquierda en Descargar App  o bien pinchando en nuestro usuario  y yendo al apartado de Mis dispositivos  pulsando en Descargar par PC