Simple formulario email en android

Hola colegas hoy veremos como hacer un simple formulario email en android, la idea de este tutorial es que podamos aplicarlo en algún  proyecto de forma fácil, hagamos una idea imaginemos que tenemos un proceso por el cual requiera enviarse un correo después de finalizar dicho proceso enviándose datos, si no contamos con un gestor de correos por SMTP por ejemplo seria bueno que nuestra aplicación le de la opción de que el usuario pueda elegir el cliente de correo que mas prefiera como se ve en este ejemplo.

 

Como enviar correos por medio de un formulario en android

 

enviar correo en android

Empezaremos por crear el modo gráfico como se muestra en la imagen de arriba para eso les dejo el siguiente código de nuestro activity_main:

 

activity_main

 

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/ePara"
        android:layout_alignStart="@+id/textView"
        android:layout_marginBottom="19dp"
        app:srcCompat="@drawable/email" />

    <Button
        android:id="@+id/btnEnviar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="64dp"
        android:text="ENVIAR" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/ePara"
        android:layout_alignBottom="@+id/ePara"
        android:layout_alignStart="@+id/textView2"
        android:text="Para:"
        android:textSize="18sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/eMensaje"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btnEnviar"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="72dp"
        android:ems="10"
        android:inputType="textLongMessage">

    </EditText>


    <TextView
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/eMensaje"
        android:layout_alignParentStart="true"
        android:text="Mensaje:"
        android:textSize="18sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/eAsunto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:ems="10"
        android:inputType="textEmailSubject" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/TextView01"
        android:layout_centerVertical="true"
        android:text="Asunto:"
        android:textSize="18sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/ePara"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/eAsunto"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="13dp"
        android:ems="10"
        android:inputType="textEmailAddress" />

</RelativeLayout>

Les saldrá un error debido a que tendrán que guardar una imagen en la carpeta drawable con el nombre de email y debe estar en formato png

 

MainActivity

 

public class MainActivity extends AppCompatActivity {

    EditText para, asunto, mensaje;
    Button enviar;
    String sPara, sAsunto, sMensaje;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        para = (EditText) findViewById(R.id.ePara);
        asunto = (EditText) findViewById(R.id.eAsunto);
        mensaje = (EditText) findViewById(R.id.eMensaje);

        enviar = (Button) findViewById(R.id.btnEnviar);

        enviar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sPara = para.getText().toString();
                sAsunto = asunto.getText().toString();
                sMensaje = mensaje.getText().toString();


                Intent email = new Intent(Intent.ACTION_SEND);
                email.putExtra(Intent.EXTRA_EMAIL, new String[]{ sPara});
                email.putExtra(Intent.EXTRA_SUBJECT, sAsunto);
                email.putExtra(Intent.EXTRA_TEXT, sMensaje);

                //necesita esto para solicitar solo al cliente de correo electrónico
                email.setType("message/rfc822");

                startActivity(Intent.createChooser(email, "Elija el cliente de correo electrónico :"));
            }
        });
    }
}

 

Este ejercicio al momento de enviar llamara a todos tus clientes de mensajería para que puedas enviar dicho correo como se muestra en las siguiente imagenes.

 

 

 

 

 

 

 

 

 

 

 

A continuación les dejo el link de la descarga aquí.

Password: www.androfast.com

0

Hola soy Alex Céspedes  fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!

como enviar email en android studio

Hola [email protected] hoy veremos un nuevo tutorial de como enviar email en android studio, sera algo básico porque luego nos servirá como base para ejercicios mas avanzados.

Paso 1: Empezamos con la parte gráfica, necesitaremos un button y un TexView para mostrar el cuerpo del mensaje, también podrías usar un EditText, eso se los dejo a su imaginación, debería quedar de la siguiente forma:

Si tienen pereza no hay problema les dejo el código del activity_main.xml

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">
        <Button
            android:id="@+id/btnEmail"
            android:text="Enviar Email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        </Button>
        <TextView
            android:id="@+id/text_to_email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/my_text" />
    </LinearLayout>

</RelativeLayout>

 

 
Paso 2: Ahora necesitamos insertar unos permisos en nuestro AndroidManifest los cuales los podemos ver las lineas en azul, nos permitirá tener acceso a algún gestor de mensajería y a la vez tener acceso a Internet.

AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidmorefast.pc.appenviaremail">
    <!-- Permisos requeridos -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <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>
Paso 3: Ahora nos vamos a la parte del código, esto lo veremos en nuestro MainActivity no hay mucho que decir porque el código lo entrego documentado.

MainActivity 

public class MainActivity extends Activity implements View.OnClickListener {
    private static final String tag = "Main";
    private Button botonEmail;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.botonEmail = (Button) this.findViewById(R.id.btnEmail);
        this.botonEmail.setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        //Verificamos si el usuario ha hecho click en el Boton de Enviar Email
        if (view == this.botonEmail) {
            //Llamamos al metodo enviarEmail
            enviarEmail();
        }
    }

    private void enviarEmail(){
        //Instanciamos un Intent del tipo ACTION_SEND
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        //Aqui definimos la tipologia de datos del contenido dle Email en este caso text/html
        emailIntent.setType("text/html");
        // Indicamos con un Array de tipo String las direcciones de correo a las cuales enviar
        emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
        // Aqui definimos un titulo para el Email
        emailIntent.putExtra(android.content.Intent.EXTRA_TITLE, "El Titulo");
        // Aqui definimos un Asunto para el Email
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "El Asunto");
        // Aqui obtenemos la referencia al texto y lo pasamos al Email Intent
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, getString(R.string.my_text));
        try {
            //Enviamos el Correo iniciando una nueva Activity con el emailIntent.
            startActivity(Intent.createChooser(emailIntent, "Enviar Correo..."));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(MainActivity.this, "No hay ningun cliente de correo instalado.", Toast.LENGTH_SHORT).show();
        }
    }
}

 

Para finalizar el tutorial, seguramente  a algunos les sale errores pero les aconsejo que siempre que sigan un tutorial revisen el archivo string.xml dentro de la carpeta values pues ahí algunos desarrolladores hacemos cambios como el titulo de la app o algo extra de igual forma les dejo la aplicación funcionando y también una imagen de como quedaría el producto final.

 

 

Igual si piensas que hablo escribo en chino te dejo el ejercicio: 
PASSWORD: www.androfast.com
0

Hola soy Alex Céspedes  fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!