Enviar un correo electrónico con varios archivos adjuntos

Estoy tratando de enviar un correo electrónico con varios archivos adjuntos.

Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]", "[email protected]"}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject"); emailIntent.putExtra(Intent.EXTRA_TEXT, "The Text"); emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); emailIntent.setType("text/plain"); startActivity( Intent.createChooser(emailIntent, "Send Email Using: ") ); 

Esto funciona muy bien cuando envío el correo electrónico con gmail, pero no adjunta los datos adjuntos si envío el correo electrónico utilizando el cliente de correo electrónico en un Nexus One. Tiene todo el texto, el tema, etc … pero no hay adjuntos. La cuenta de correo electrónico que tengo es una cuenta de intercambio si eso importa …

Pruebe esto su trabajo bien.

 final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); emailIntent.setType("plain/text"); ArrayList<Uri> uris = new ArrayList<Uri>(); String[] filePaths = new String[] {image1 Path,image2 path}; for (String file : filePaths) { File fileIn = new File(file); Uri u = Uri.fromFile(fileIn); uris.add(u); } if ( !(app_preferences.getString("email", "") == null || app_preferences.getString("email", "").equals(""))) { emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {app_preferences.getString("email", "")}); } emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject name"); emailIntent.putExtra(Intent.EXTRA_TEXT, "Please find the attachment."); emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); startActivity(Intent.createChooser(emailIntent, "Email:")); 

Intenté todo esto un millón de veces – lo consiguió para trabajar pero tenía una advertencia desagradable. Descubrí que es un error de Android. Hay una corrección y más información aquí:

 https://code.google.com/p/android/issues/detail?id=38303 Error: ClassCastException warning in log when opening e-mail app with a body and multiple file attachments. 

Actualización: solución encontrada. En lugar de

 sendIntent.putExtra(Intent.EXTRA_TEXT, "See attached CSV files."); 

Coloque el texto como ArrayList

 ArrayList<String> extra_text = new ArrayList<String>(); extra_text.add("See attached CSV files."); sendIntent.putStringArrayListExtra(Intent.EXTRA_TEXT, extra_text); 

Voila! No más excepción, y el EXTRA_TEXT termina como el cuerpo del correo electrónico.

EDIT: Creo que simplemente comentar esta línea se deshace del error – pero entonces usted no consigue entrar cualquier información para un cuerpo. En mi caso, eso está bien, ya que sólo estoy enviando archivos de registro por correo electrónico. Elimine esta línea para eliminar la advertencia: 'sendIntent.putExtra (Intent.EXTRA_TEXT, "Ver archivos CSV adjuntos.");'

  • Incorporación de imagen en el correo electrónico en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.