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

     

     

     

    Software gratuito para diseño de cocinas


    Nunca es divertido pasar por una renovación de cocina, pero si lo pensamos sobre el papel ( o mejor desde el ordenador ) ,  seguro que es divertido planear y diseñar una cocina gracias al  software de diseño de cocinas  donde se puede fácilmente planear y diseñar su nueva cocina por su cuenta, sin descuidar por cierto   ningún aspecto de una casa como por ejemplo  el tipo de suelo, el color de las paredes o la iluminación o incluso elementso de decoración.

    Dado que la cocina es uno de los espacios más utilizadas en una casa, es importante una planificación cuidadosa por lo que previsualizar  en una vista 3d   nos puede ser muy útil a la hora de acometer  futuros trabajos   siendo un gran punto de partida, especialmente si se vamos a contratar  un especialista o un fabricante de cocinas pues se puede facilitar  para que tengan algo con lo que trabajar.( y por supuesto si vamos a auto-construir nuestra propia cocina, donde tener un plan se convierte  en una necesidad).

     

    Es ovbio  que el uso del increíble software actual (especialmente las versiones 3D) , el cual no necesariaemnte  tiene qeu  ser profesional  ni de pago nos va  a  permitir visualizar nuestra futura  cocina mucho mejor que un simple dibujo 2D en blanco y negro, pero  tampoco debemos desdeñar los nueceros  recursos que hay en la red como por ejemplo otras cocinas diseñadas por millones de personas a lo largo  del mundo , las cuales suelen mostrarla en pinterest .

    Un primer  consejo sobre el software de diseño de cocinas pues pude ser empezar por mirar las miles de  imágenes de la cocina que hay  por la red , y una vez que encuentre un diseño de cocina que le guste , trabaje a partir de eso con un software  especifico pues asombrosamente, existen  opciones libres de la herramienta del diseño de la cocina en línea.

     

    A continuación vamos   a ver  muestra nuestra de  lista de opciones de software de diseño gratuito que incluyen el diseño de la cocina.

     

    Sw de Leroy Merlin

    Comenzamos nuestra revisión y lista de las mejores opciones de software de diseño de cocina con opciones gratuitas. Gratis es genial y francamente, sorprende el nivel de calidad y características que algunas de las opciones gratuitas incluyen.

    En el caso del sw de  Leroy  Merlon  ofrece no solo el diseñador  ,  planificador , presupuestador ( lógicamente basados en los modelos que disponen )  y una vista 3d , sino también un interesante asistente automático   que en función de la forma de la planta de la cocina nos  ofrece opciones automáticas para completar nuestra cocina simplemente con un click ,lo cual nos va facilitar bastante las cosas

    Para empezar , podemos acceder al sw de diseño de cocinas en linea  gratuito  en http://www.leroymerlin.es/productos/cocinas/planificador-de-cocinas-3d  

    Una vez  completado el  registro ( es gratuito y solo piden un email), tendremos que descargar el sw,

    Ya validado  en la url , nos muestran  varias propuestas para que elijamos nuestro look  cocina ideal que se ajusta a nuestras  necesidades  o  gustos que se identifica con nuestro u estilo  que puede ya se haya  imaginado o haya visto en la red.

    Elegido el modelo de cocina nos tocar dibujar, por lo que para empezar el nuevo proyecto debemos  añadir las medidas de la cocina, las puertas, ventanas y los elementos técnicos  de la forma mas precisa posible , pues este paso es fundamental para que el diseño final pueda ser tangible  de un modo realista.

    Creada la planta  toca la  fase de diseño, donde aquí destacamos que para crear su cocina de forma muy sencilla podemos usar  al asistente virtual, el cual  ofrecerá propuestas automáticas que pueden  ajustarse a sus necesidades .No obstante si lo prefieres, también puedes diseñar su proyecto desde cero de forma manual.

     

    Para poder retomar y hacer cambios en el diseño podemos  y debemos guardar nuestro boceto ( no hay limite en cuanto al numero de  proyectos )  y de esta forma podrá acceder a ellos en cualquier momento para revisarlos, modificarlos o añadir elementos de decoración.

     

     

     

    Sw de IKEA

    El Planificador de Cocinas 3D de IKEA es ideal si va a comprar una cocina IKEA  pues al contrario de lo que sucede con el sw de leroy Merlin en el caso de Ikea sus módulos no siempre atienden a medidas estandard aunque a  cambio una cualidad de  las cocinas IKEA es que se suelen tener un aspecto moderno ofreciendo durabilidad y calidad   sin sacrificar el costo 

    La decisión de comprar una cocina IKEA suele  reducirsea los principales factores: precio, diseño y flexibilidad.

    1. Precio: IKEA ha creado un monopolio en lo que respecta a la economía de escala para muebles para el hogar. Gracuias  a su diemnsion  IKEA  tiene un increíble poder de fijación de precios para crear excelentes productos a precios increíbles.Sucede que uno de estos excelentes productos es su línea completa de gabinetes SEKTION.
    2. Diseño : Hay otros sistemas de gabinetes producidos en masa disponibles en lugares como Home Depot o Lowes, pero simplemente no sostienen una vela en los gabinetes de IKEA. Los gabinetes IKEA son completamente modulares y con un poco de pensamiento creativo es sorprendente lo adaptables que realmente son cuando se trata de diseño.
    3. Flexibilidad : , los gabinetes IKEA se pueden instalar de muchas maneras diferentes, lo que le brinda un increíble nivel de flexibilidad para un sistema de gabinete listo para usar. Esto también significa que si se cansa de las puertas de su gabinete en 10 años, o se arruina uno de los frentes de los cajones, es fácil cambiarlos por otros nuevos.

    La clave de estos factores es que no es necesario sacrificarse por uno para obtener los otros pues se  suelen obtener  diseños flexibles a precios fantásticos.

    Para empezar , podemos acceder al sw de diseño de cocinas en linea  gratuito  en IKEA 3D Kitchen Planner

     

     

     

    El software de planificación de cocina IKEA comienza haciendo que dibuje su  espacio con las proporciones correctas lo que  le permite diseñar su espacio a escala. El software le permite agregar y eliminar gabinetes, cambiar frentes de puertas, agregar encimeras, cambiar hardware de puertas, agregar iluminación e incluso agregar electrodomésticos. 

    Luego, cuando esté listo, active el modo 3D para ver cómo su diseño cobra vida. Todo esto suena genial, pero también induce dolor de cabeza. Algo tan simple como mover objetos por la habitación puede causar accidentes, por lo tanto, guarde con frecuencia.Incluso los muros tienden a moverse a voluntad.

    Al final, el software le proporciona una lista de compras para todo lo que necesita para construir su cocina en la vida real.

    El software de cocina de IKEA da como resultado una relación de amor y odio. Le permitirá visualizar su cocina antes de comprar cualquier cosa y le dará una lista de compras que le ayudará con el presupuesto. 

     

     

    Otros  programas de diseños de cocina

     

    Sin duda los dos programas anotados son delos mas usados , pero a continuación  veamos algunos  otros programas que son realmente “freemium”, lo que significa que obtiene acceso gratuito a las funciones básicas, pero tiene la opción de pagar por las funciones premium.

     

    Stratosphere’s

    En realidad, esta plataforma diseña todas las habitaciones de la casa  ,lo cual significa que  también  tiene algunas características  para diseñar una cocina agradable  en consonancia con el resto de su hogar.

    Se accede  en esta url:  Software de Diseño de Interiores

     

    Este sw  está completamente disponible en línea y  también tiene  algunas características premium.

    Por último, si estás en un dispositivo móvil, asegúrese de hacer clic en la versión para móviles , pero debe saber que es bastante difícil usar software de diseño en un teléfono (las tabletas están bien pero los  ordenadores portátiles o de escritorio son las mejores).

     

    Backsplash and Cabinet Design Software

    Esta es una oferta única en el sentido de que se centra en el diseño de salpicaderos y armarios siendo muy fácil de usar para probar patrones de salpicaduras, colores de gabinetes y diseños de encimeras entre sí.

    Es totalmente gratis (ofrecido por un minorista de backsplash así que esperan que,  como el resto de sw  presentado en este post,   compremos sus productos ).

    Se accede  en esta url: Backsplash and Cabinet Design Software

     

    Este es software libre (no es barato desarrollar y proporcionar software en línea) por lo que los gráficos no son tan nítidos como los proveedores de software premium, pero es una gran plataforma para jugar con varios diseños, para hacerse una idea de algunos colores, materiales y formas básicos del backsplash.

     

    Homestyler

    Homestyler es una opción de software de diseño de interiores en línea muy popular (en gran parte porque es gratuito y ofrece salida en 3D).

    Este programa en particular ofrece  módulos de cocina.

    Se accede  en esta url: Homestyler

    Se empieza  con la planificación del diseño y la planta .A partir de ahí, usted elige el módulo de cocina para que pueda introducir los elementos específicos, tales como armarios, encimeras, fregaderos, electrodomésticos, etc.

    Otra característica interesante es que ofrece una versión móvil.

    Home Hardware Kitchen Design Software

    Home Hardware ofrece una de las mejores plataformas de software gratuito para el diseño de cocinas.

    Tienen una opción en línea dedicada a las cocinas e incluye varias plantillas para trabajar (o crear las suyas propias desde cero).

    Se accede  en esta url: Home Hardware Kitchen Design Software

     

    Toda la plataforma de software está disponible en línea para que no tenga que descargar nada. Además, hay varias plantillas prediseñadas que puede cargar y partir de ahí.

     

    Planner5D

    Este software es de diseño gratuito  ofreciendo diseños de interiores de aspecto muy real.

    Si bien permite diseñar casas enteras y oficinas, tiene un gran módulo de diseño de cocina,así que sí, puede usarlo para diseñar sólo su cocina.  La desventaja de esta opción es que las opciones de diseño para su cocina son más limitantes que otros programas de software de diseño (pero es gratis).

    Se accede  en esta url: Planner5D

     

    El programa por defecto es el mejor en el escritorio. Si quiere al version  móvil, tendrá  que instalar la aplicación para IOS o Android.

    Hay algunas características premium que requieren que se pague unq pequeña cantidad por ello.

     

    Lowe’s Virtual Kitchen Designer

    Lowe’s utiliza la misma plataforma de software de cocina virtual que Home Hardware.

    Al igual que la otros programas , el sw es totalmente gratis con la esperanza de que usted compre gabinetes de cocina y similares de ellos.

    Se accede  en esta url: Lowe’s Virtual Kitchen Designer

    Puede hacer clic en las imágenes para ampliarlas y ver el nivel de detalle y calidad del diseño tridimensional y el renderizado.

    Es un poco lento de cargar y un poco difícil de usar, pero  los resultados pueden ser bastante buenos de forma gratuita.

     

     Roomstyler

     

    Roomstyler es una opción de software de diseño 3D en línea fácil de usar con un módulo de cocina también.

    Como muchas otras plataformas, usted comienza con el diseño/huella, y luego agrega los elementos individuales de diseño. Con Roomstyler, usted simplemente elige el módulo de cocina con el que puede completar el diseño de la cocina.

    Curiosamente, Roomstyler es una de las pocas opciones que ofrece utensilios de cocina, cristalería, otros platos, pequeños electrodomésticos de cocina, etc.

     

    Se accede  en esta url:   Roomstyler

     

    Realmente se puede diseñar la cocina hasta el último detalle (aunque no estoy seguro de lo útil que es añadir platos y utensilios a su plan de cocina).

     

    Floor Planner

    Floor Planner le permite crear un diseño de forma gratuita. Usted debe pagar por planes adicionales.

    Es una buena opción para crear diseños o planos. Así que si quiere probar ideas de diseño de cocina, esta es una buena opción. Sin embargo, si usted está buscando una representación 3D de lujo de su diseño de cocina, le sugerimo que pruebe otras  opción diferente  como las comentadas anteriormente.

    Se accede  en esta url: Floor Planner

     

     Prodboard Online Kitchen Planner

    Es impresionante  lo reales que son los planos de la cocina generados por el planificador de cocina 3D de Prodboard.

    Mientras que Prodboard se centra en la venta de una licencia de su software a las empresas, usted puede utilizar el planificador de cocina de forma gratuita.

    Se accede  en esta url:  Prodboard Online Kitchen Planner

     

     RoomToDo Software.

    El software RoomToDo sirve tanto a personas que buscan crear diseños de hogar en 3D, incluyendo cocinas, como a empresas como diseñadores de interiores, minoristas de muebles, agentes de bienes raíces y otras empresas que necesitan software de diseño de cocinas de marca blanca.

    Se accede  en esta url:  RoomToDo Software.

    Cuando visite la página de inicio, verá un ejemplo de lo impresionante que es este software en el diseño de espacios tridimensionales y diseños para el hogar.

     

     

    Al abrir el lienzo de diseño, descubrirá la opción de diseño de cocina en las opciones de navegación de la derecha. Dentro del portal de diseño de cocinas hay opciones para diseñar una cocina estupenda.

    También existe una versión completamente móvil de este software.

     

     

    Sin duda existen muchísimos programas  de diseño  de cocinas  tanto en linea como instalables ( últimamente incluso para otros dispositivos como móviles o tabletas )   , pero en este post nos hemos querido centrar en opciones no profesionales gratuitas por lo menos para que nos puedan dar idea de hasta donde podemos llegar con nuestras ideas