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
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
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!