por enviar electronico documento desde correo como celular archivo adjunto adjuntar android email email-attachments

android - enviar - Envío de correo electrónico con archivo adjunto desde la carpeta de activos



como enviar un documento de word por correo gmail (4)

Puede usar el siguiente código para lograr su objetivo y puede cambiar la cadena codificada de acuerdo con sus requisitos.

String filename="contacts_sid.vcf"; File filelocation = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), filename); Uri path = Uri.fromFile(filelocation); Intent emailIntent = new Intent(Intent.ACTION_SEND); // Here you can set the type to ''email'' emailIntent .setType("abc.xyz.cursor.dir/email"); String to[] = {"[email protected]"}; emailIntent .putExtra(Intent.EXTRA_EMAIL, to); // For the attachment emailIntent .putExtra(Intent.EXTRA_STREAM, path); // the mail subject emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Find Attachments with email"); startActivity(Intent.createChooser(emailIntent , "Sending email..."));

//EMAIL SENDING CODE FROM ASSET FOLDER email = editTextEmail.getText().toString(); subject = editTextSubject.getText().toString(); message = editTextMessage.getText().toString(); final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("file/html"); emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://com.example.deepa.xmlparsing/file:///android_assets/Combination-1.html")); startActivity(Intent.createChooser(emailIntent, "Send email using"));

Finalmente, obtengo el archivo de la carpeta de activos (Combination-1.html).

Se está haciendo

Excepción del archivo de error en tiempo de ejecución.

¿Hay alguna otra manera de enviar archivos adjuntos?


Cree un objeto de archivo de su archivo de carpeta de activos y adjunte este objeto a su Intención de correo electrónico.

Y como se menciona en la pregunta, el archivo de error de tiempo de ejecución no se encuentra, esto puede deberse a que la URL "archivo: /// android_asset /" no apunta a un directorio en particular, solo WebView lo utiliza para abordar los activos. Tiró eso from

puede abrir esto como un flujo de entrada y convertir este InputStream en File

in = new BufferedReader(new InputStreamReader(activity.getAssets().open(myfile.pdf)));

Enviar este objeto de archivo en el correo electrónico de la siguiente manera.

Intent intent = new Intent(Intent.ACTION_SEND ,Uri.parse("mailto:")); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "Card Set "); intent.putExtra(Intent.EXTRA_TEXT, ""); intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file)); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); activity.startActivity(intent);

Donde Intent.ACTION_SEND utiliza para enviar correo electrónico, Intent.EXTRA_STREAM para los archivos adjuntos con correo electrónico. puede tener múltiples Intent.EXTRA_STREAM en un solo intento para referir múltiples adjuntos con intent.setAction(Intent.ACTION_SEND_MULTIPLE); .

intent.setType(String mimeType) entrada intent.setType(String mimeType) representa los datos de tipo MIME que desea obtener a cambio de la intención de disparo (en este caso, la instancia).

image/jpeg audio/mpeg4-generic text/html audio/mpeg audio/aac audio/wav audio/ogg audio/midi audio/x-ms-wma video/mp4 video/x-msvideo video/x-ms-wmv image/png image/jpeg image/gif .xml ->text/xml .txt -> text/plain .cfg -> text/plain .csv -> text/plain .conf -> text/plain .rc -> text/plain .htm -> text/html .html -> text/html .pdf -> application/pdf .apk -> application/vnd.android.package-archive


La forma más sencilla de enviar un correo electrónico es crear una Intención de tipo ACTION_SEND:

Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_SUBJECT, "Test"); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{recipient_address}); intent.putExtra(Intent.EXTRA_TEXT, "Attachment test");

Para adjuntar un solo archivo, agregue algunos datos extendidos a Intent:

intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File("/path/to/file"))); intent.setType("text/html");

O use Html.fromHtml () para compilar contenido html:

intent.putExtra( Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder() .append("<h1>Heading 1</h1>") .append("<p><a>http://www.google.com</a></p>") .toString()));

Para múltiples archivos adjuntos:

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.setType("text/html"); intent.putExtra(Intent.EXTRA_SUBJECT, "Test multiple"); intent.putExtra(Intent.EXTRA_TEXT, "multiple attachments"); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{recipient_address}); ArrayList<Uri> uris = new ArrayList<Uri>(); uris.add(Uri.fromFile(new File("/path/to/first/file"))); uris.add(Uri.fromFile(new File("/path/to/second/file"))); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

Termina con una llamada a startActivity () intención de pasar.


No puede compartir el archivo de carpeta de recursos con otra aplicación sin ContentProvider . Puede enviar un archivo al que se puede acceder para cada aplicación. Al igual que algunos whare en la memoria interna del teléfono o en la tarjeta SD.

Compartiendo Activos Marque Esta Respuesta de @CommonsWare

O lea su archivo de texto y use @RonTLV Responda y envíe por correo.

O Copie el archivo en la memoria intenal y agregue al envío de lanzamiento. Espero que esta respuesta ayude.