Отправка электронного письма с приложением из приложения - PullRequest
1 голос
/ 11 ноября 2010

Я создаю приложение, которое имеет функцию «экспорта», которая преобразует данные пользователя в файл 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..."));

Ответы [ 3 ]

2 голосов
/ 01 апреля 2013
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:"));
0 голосов
/ 11 ноября 2010

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

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

0 голосов
/ 11 ноября 2010

нужен правильный путь для вашего файла, если на 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

...