Comment envoyer un e-mail avec une pièce jointe sous Android
je veux joindre .fichier vcf avec mon mail et l'envoyer par la poste. Mais le courrier est reçu sur l'adresse sans la pièce jointe.J'ai utilisé le code ci-dessous mais le code pour cela et je ne sais pas où je me trompe.
try {
String filelocation="/mnt/sdcard/contacts_sid.vcf";
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+filelocation));
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.setData(Uri.parse("mailto:"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(intent);
activity.finish();
} catch(Exception e) {
System.out.println("is exception raises during sending mail"+e);
}
38
demandé sur
Phillip
2012-04-02 14:46:04
4 réponses
Utilisez le code ci-dessous pour envoyer un mail
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);
// set the type to 'email'
emailIntent .setType("vnd.android.cursor.dir/email");
String to[] = {"asd@gmail.com"};
emailIntent .putExtra(Intent.EXTRA_EMAIL, to);
// the attachment
emailIntent .putExtra(Intent.EXTRA_STREAM, path);
// the mail subject
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");
startActivity(Intent.createChooser(emailIntent , "Send email..."));
73
répondu
Shankar Agarwal
2016-02-25 02:31:43
Folder_name est le nom du fichier dans votre mémoire interne de votre téléphone. (EN FAIT EXTERNAL_STORAGE). nom_fichier est le nom du fichier que vous souhaitez envoyer.
private void ShareViaEmail(String folder_name, String file_name) {
try {
File Root= Environment.getExternalStorageDirectory();
String filelocation=Root.getAbsolutePath() + folder_name + "/" + file_name;
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
String message="File to be shared is " + file_name + ".";
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+filelocation));
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.setData(Uri.parse("mailto:xyz@gmail.com"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} catch(Exception e) {
System.out.println("is exception raises during sending mail"+e);
}
}
7
répondu
Kshitij
2016-12-03 19:40:18
L'exemple sur l'officiel site Android a travaillé pour moi. Ce qui est nécessaire pour ajouter de l'
startActivity(Intent.createChooser(emailIntent , "Send email..."));
comme fait dans la réponse D'Agarwal
4
répondu
hamish
2015-03-18 08:09:09
SENDTO ne supporte pas l'attachement. J'ai ajouté ma réponse en utilisant Provider pour lire les informations du fichier. Son Kotlin.
fun shareFile(context: Context, filePath: File?, fileShareInfo: FileShareInfo) {
val intentFileShare = Intent(Intent.ACTION_SEND)
if (filePath!!.exists()) {
intentFileShare.type = fileShareInfo.fileType
val uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", filePath)
intentFileShare.putExtra(Intent.EXTRA_STREAM, uri)
fileShareInfo.recipients?.let {
intentFileShare.putExtra(Intent.EXTRA_EMAIL, fileShareInfo.recipients)
}
intentFileShare.putExtra(Intent.EXTRA_SUBJECT, fileShareInfo.shareSubjectText)
fileShareInfo.shareExtraText?.let {
intentFileShare.putExtra(Intent.EXTRA_TEXT, AppViewUtil.fromHtml(fileShareInfo.shareExtraText!!))
}
try {
ContextCompat.startActivity(context, Intent.createChooser(intentFileShare, fileShareInfo.shareTitle), null)
} catch (e: ActivityNotFoundException) {
Toast.makeText(context, context.getString(R.string.sharing_no_app_found), Toast.LENGTH_LONG).show()
}
}
}
1
répondu
Deep P
2018-03-01 23:56:12