4

i`m trying to send an email using native email client on android phone.

I have tried following ways to add an attachment to the mail...

method--1

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/jpeg");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/abc.jpg"));

method 2

Sending the image as body content---

sendIntent.putExtra(Intent.EXTRA_TEXT, "<HTML><BODY><b><IMG**SRC=
\"data:image/jpeg;base64," + <imagepath> + "\"**alt = \"**pleaseview this
image\"/></b></BODY></HTML>");

i can successfully attach the image manually but when i tried to attach and send it programmatically the mail was sent without attachement.

Please let me know if there is a way to send an attachment programmatically by using email client

N-JOY
  • 10,344
  • 7
  • 51
  • 69
mudit
  • 25,306
  • 32
  • 90
  • 132
  • check this : http://www.android-ios-tutorials.com/207/how-to-send-email-programmatically-in-android/ – Houcine Sep 16 '14 at 17:20

2 Answers2

15

I think your problem is that you are not putting right the file path.

The following works for me:

Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setType("image/jpg");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Pictures/
image.jpg"));
startActivity(i);

Note that file path has 3 "/", the first two for the "file://" header, the other because sdcard dir is inside the root of the filesystem, which is "/" in linux.

Lucas S.
  • 13,391
  • 8
  • 46
  • 46
1

I believe that the Uri you are using is incorrect. I tried file:///mnt/sdcard/ and worked quite fine.

user
  • 86,916
  • 18
  • 197
  • 190