Curso Android: Envío de emails utilizando Android Inicio Temas Perfiles Guías Acerca de Contacto Búsqueda Sobre el Autor Adrian Catalán Ingeniero en Sistemas, catedrático universitario, educador y desarrollador de software, fundador del grupo de tecnologías de Curso Android: Envío de emails utilizando Android Google en Guatemala (GTUG), apasionado por aplicaciones web (Ruby On Rails) y móviles (Android) desde el 2011 un Elemental Geek. Últimos artículos: Free Stock Photos Curso Android: Conectándonos con APIs de Google Dreamstime.com Create a Free Account and Download High Resolution Images for Free. Curso Android: Trabajando con APIs (Facebook y Twitter) Curso Android: Reproducción de sonido en un ciclo infinito Curso Android: Trabajar con el acelerómetro Más artículos de Adrian Catalán En el capítulo 8 del Curso Android veremos cómo enviar emails utilizando Android la aplicación de ejemplo que realizaremos nos permitirá colocar la información para un correo electrónico (destinatario, asunto, contenido del correo, adjuntos) y luego enviarlo a través de la aplicación de correo electrónico. Es importante notar que el ejemplo debe ejecutarse en un teléfono o bien instalar una aplicación para envío de emails en el emulador (por defecto no está instalada pero es 21.169 Lecturas 3 Comentarios Archivado en: Tecnologías móviles, Android, curso Movilidad 2.0 – buscando el genoma de las Start-apps Josh Jones y Dallas Kashuba fundadores Dreamhost relativamente simple). Queremos que al finalizar se vea así: Notas importantes Mexico y América Latina se prepara para recibir a Geeksonaplane Crear contenido para Twitter El libre licenciamiento de obras Herramientas analíticas para Redes Sociales Herramientas para crear y organizar contenido en Redes Sociales Autogestión o gestión colectiva ¿Qué debe saber un Community Manager sobre la marca? La función del Community Manager http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] Curso Android: Envío de emails utilizando Android Limitaciones y excepciones al derecho de autor En Argentina y Colombia, curso de desarrollo rápido de apps web con Python y Django Disposición inicial En este caso, nuestra interfaz de usuario será muy sencilla por lo que no utilizaremos ningún código base tampoco realizaremos ninguna configuración adicional. Diseño El diseño presenta los campos necesarios para el envío del mail dentro de un contenedor global (en este caso utilizamos un LinearLayout) por cada fila tenemos otro contenedor que a su vez dentro tiene 2 elementos: una TextView y un EditText eso se repite para la dirección de correo del destinatario, el asunto y el cuerpo del correo. Por último, se tiene una CheckBox para indicar si se desea enviar un adjunto (el ícono de la aplicación). El XML complete del diseño es el siguiente: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation ="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation ="horizontal"> <TextView android:text="Destinatario" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtForEmail"></TextView> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="170dip" android:id="@+id/etEmail"> </EditText> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation ="horizontal"> <TextView android:text="Asunto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtForSubject"></TextView> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="170dip" android:id="@+id/etSubject"> </EditText> </LinearLayout> <LinearLayout android:id="@+id/LinearLayout04" http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] ? Curso Android: Envío de emails utilizando Android 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation ="horizontal"> <TextView android:text="Mensaje" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txtForBody"></TextView> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:lines="5" android:width="300dip" android:id="@+id/etBody"> </EditText> </LinearLayout> <CheckBox android:text="Enviar ícono adjunto" android:id="@+id/chkAttachment" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnSend" android:text="Enviar" android:width="150dip"> </Button> </LinearLayout> Agregando funcionalidad Asociaremos todo el código del envío del email al evento de click sobre el botón “Enviar”: 1 2 3 4 5 6 Button btnSend = (Button) findViewById(R.id.btnSend); btnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); ? Obtenemos primero los elementos del form con los datos el email (destinatario, asunto, cuerpo del mail y adjunto): 1 2 3 4 5 // obtenemos los datos para el envío del correo EditText etEmail = (EditText) findViewById(R.id.etEmail); EditText etSubject = (EditText) findViewById(R.id.etSubject); EditText etBody = (EditText) findViewById(R.id.etBody); CheckBox chkAttachment = (CheckBox) findViewById(R.id.chkAttachment); Luego construimos un intent ? que luego utilizaremos para levantar la Activity para el envío del correo, este debe ser del tipo ACTION_SEND , posteriormente indicamos cuál será el tipo de dato a enviar. 1 2 3 4 // es necesario un intent que levante la actividad deseada Intent itSend = new Intent(android.content.Intent.ACTION_SEND); // vamos a enviar texto plano a menos que el checkbox esté marcado itSend.setType("plain/text"); ? Colocamos todos los datos obtenidos del form, incluyendo el posible adjunto en caso de que el CheckBox esté marcado. 01 02 03 04 05 06 07 08 09 10 11 12 13 // colocamos los datos para el envío itSend.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ etEmail.getText().toString()}); itSend.putExtra(android.content.Intent.EXTRA_SUBJECT, etSubject.getText().toString()); itSend.putExtra(android.content.Intent.EXTRA_TEXT, etBody.getText()); // revisamos si el checkbox está marcado enviamos el ícono de la aplicación como adjunto if (chkAttachment.isChecked()) { // colocamos el adjunto en el stream itSend.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.icon)); // indicamos el tipo de dato itSend.setType("image/png"); } ? Por último iniciamos la Activity para el envío. 1 startActivity(itSend); ? El código completo es el siguiente: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 Button btnSend = (Button) findViewById(R.id.btnSend); btnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //obtenemos los datos para el envío del correo EditText etEmail = (EditText) findViewById(R.id.etEmail); EditText etSubject = (EditText) findViewById(R.id.etSubject); EditText etBody = (EditText) findViewById(R.id.etBody); CheckBox chkAttachment = (CheckBox) findViewById(R.id.chkAttachment); //es necesario un intent que levante la actividad deseada Intent itSend = new Intent(android.content.Intent.ACTION_SEND); //vamos a enviar texto plano a menos que el checkbox esté marcado itSend.setType("plain/text"); //colocamos los datos para el envío itSend.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ etEmail.getText().toString()}); itSend.putExtra(android.content.Intent.EXTRA_SUBJECT, etSubject.getText().toString()); itSend.putExtra(android.content.Intent.EXTRA_TEXT, etBody.getText()); http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] ? Curso Android: Envío de emails utilizando Android 22 23 24 25 26 27 28 29 30 31 32 33 34 //revisamos si el checkbox está marcado enviamos el ícono de la aplicación como adjunto if (chkAttachment.isChecked()) { //colocamos el adjunto en el stream itSend.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.icon)); //indicamos el tipo de dato itSend.setType("image/png"); } //iniciamos la actividad startActivity(itSend); } }); Descargar: Puedes descargar el código de la aplicación completa y funcional en: Envío de emails utilizando Android . Conclusión En esta ocasión hemos visto la forma de enviar un correo electrónico (incluyendo un adjunto opcional) todo incluído en los extras a través de un intent utilizado para iniciar la Activity para el envío del mail. Siguiente capítulo: Trabajando con APIs (Facebook y Twitter) → El logotipo de Android es compartido por Google bajo licencia Creative Commons por Atribución. Twittear 1 Me gusta Me gusta Ya no me gusta Me gusta A ti y a 13 personas más les gusta esto.A 13 personas les gusta esto. Regístrate para ver qué les gusta a tus amigos. Capitulos de la Guía Android 1. Todo lo que necesitas para empezar 2. Construir un lector de feeds simple 3. UI en Android y aumentar la funcionalidad de un lector de feeds 4. Trabajado con imágenes (cámara y galería) 5. Grabación y reproducción de vídeo 6. Geolocalización y utilización de mapas de Google 7. Trabajar con el acelerómetro 8. Reproducción de sonido en un ciclo infinito 9. Envío de emails utilizando Android 10. Trabajando con APIs (Facebook y Twitter) 11. Conectándonos con APIs de Google 12. Descarga el Curso Android y aprende a desarrollar aplicaciones móviles + Ver todos los contenidos Adrian Catalán para Maestros del Web. Agrega tu comentario | Enlace permanente al artículo Síguenos en: @maestros | Fan page http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] Curso Android: Envío de emails utilizando Android 3 Comentarios 1 Danilo Hola que tal, primero que todo felicitarte por los tutoriales, están buenisimos!!! Ahora a lo que me convoca a escribir… Al querer instalar el .APK en mi celular me arroja un error que dice: “EROR DE ANALISIS – Se ha producido un problema al analizar el paquete”. Ojalá me puedan ayudar con esto. De ante mano gracias. 21.06.2011 - 01:05 2 Carlos Hola, me ha parecido muy interesante este tutorial. Quisiera saber algo: Cuando usted dice: “Es importante notar que el ejemplo debe ejecutarse en un teléfono o bien instalar una aplicación para envío de emails en el emulador” si lo voy a ejecutar en el emulador por tanto debería tener instalada una aplicación como gmail en él u otra similar? si es esto, sólo basta tenerla instalada y nada más, es sólo cuestion de dar click en el botón “Enviar” ? Muchas Gracias por la información 01.10.2011 - 10:25 3 Javier Sí el intent es para llamar a un cliente mail que se tenga instalado en el dispositivo. No hace la función de cliente mail. Saludos 08.10.2011 - 08:40 Los comentarios de este post están cerrados. Si quieres seguir la discusión, debatir, criticar, sugerir o expandir el tema te invitamos a hacerlo en tu propio blog, en twitter o donde puedas publicar. No olvides enlazar a este post para que sigamos la conversación y se genere un trackback. ← Movilidad 2.0 – buscando el genoma de las Start-apps Acerca de Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy Josh Jones y Dallas Kashuba fundadores Dreamhost → Nosotros Preguntas Frecuentes | Créditos | Contacto | Feed RSS Proyectos Foros del Web | 120 Segundos Licencia CC del contenido | Política de privacidad http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] Curso Android: Envío de emails utilizando Android somos un espacio de apoyo para los entusiastas que participan en proyectos en la red. Legal CMS Leer más de Maestros del Web http://www.maestrosdelweb.com/editorial/curso-android-enviar-emails/[22/07/2013 02:01:37 p.m.] WordPress