Отправка электронной почты с приложением из приложения

Я создаю приложение с функцией экспорта, которая преобразует пользовательские данные в CSV файл и позволяет пользователю отправлять его в виде прикрепления к кому-то (предположительно сами).

Файл CSV создан успешно, но когда я пытаюсь отправить электронное письмо, у меня возникла проблема. Устройство похоже, что оно отправит электронное письмо с соответствующим вложением, но когда письмо будет получено... нет прикрепления вообще...

Вот код, который я использую, чтобы отправить электронное письмо:

final Intent email = new Intent(android.content.Intent.ACTION_SEND);

  email.setType("text/html");
  email.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.email_subject));
  email.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(getString(R.string.email_1)));

  email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + getString(R.string.csv_title)));


  startActivity(Intent.createChooser(email, "Send mail..."));

Ответ 1

i've done for send any file from SD card with mail attachment..

Intent sendEmail= new Intent(Intent.ACTION_SEND);
       sendEmail.setType("rar/image");
       sendEmail.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new        
         File("/mnt/sdcard/download/abc.rar")));
         startActivity(Intent.createChooser(sendEmail, "Email:"));

Ответ 2

нужен правильный путь для вашего файла, если на SD-карте тогда...

sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse 
("file://"+Environment.getExternalStorageDirectory()+getString(R.string.csv_title)"));

Посмотрите здесь дополнительную информацию об установке соответствующего пути к файлу

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

Ответ 3

Приложение GMail принимает файл://Uris, только если они находятся на SD-карте... и на устройстве Android версии 1.6 у меня была даже проблема с тем, что он принимал только файл://sdcard/* Uris, тогда как реальное внешнее хранилище это конкретное устройство находится на другом пути.

В любом случае, у меня есть отличное поведение с вложениями, поскольку я предоставляю их через ContentProvider.