Подтвердить что ты не робот

Приложение не поступает по почте программно

Я прикрепляю файл TEXT к Email с кодом:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",
                                    "[email protected]", null));

    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Report");

    emailIntent.putExtra(Intent.EXTRA_TEXT, prepareBodyMail());
    File root = Environment.getExternalStorageDirectory();
    File file = new File(root, "/MyFolder/report.txt");

    Uri uri = Uri.fromFile(file);
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
    startActivity(Intent.createChooser(emailIntent, "Pick an Email provider"));

Этот код отлично работает с Gmail, электронной почтой и другими приложениями

Но это не файл с INBOX Google

Только тело и субъект приходят без привязанности

Я сообщил об этой проблеме в Google Groups по адресу Проблема с входящими сообщениями

Может ли кто-нибудь помочь, чего мне не хватает в коде?

4b9b3361

Ответ 1

Попробуйте это

     Uri myUri = Uri.parse("file://" + path);
     emailIntent.putExtra(Intent.EXTRA_STREAM, myUri);

Ответ 2

String fileLocation = Environment.getExternalStorageDirectory() + "/MyFolder/report.txt";    
String to[] = {"[email protected]"};

Intent intentEmail = new Intent(Intent.ACTION_SEND);
intentEmail.setType("vnd.android.cursor.dir/email");
intentEmail.putExtra(Intent.EXTRA_EMAIL, to);
intentEmail.putExtra(Intent.EXTRA_STREAM, fileLocation);
intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Subject");

startActivity(Intent.createChooser(intentEmail , "Pick an Email provider"));

Ответ 3

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, "body text");
File root = Environment.getExternalStorageDirectory();
File file = new File(root, xmlFilename);
if (!file.exists() || !file.canRead()) {
    Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
    finish();
    return;
}
Uri uri = Uri.fromFile("file://" + file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send email..."));

Ответ 4

  public void sendMailWithIntent(String emailTo,
                                   String subject, String emailText, List<String> filePaths) {
        try {
            //need to "send multiple" to get more than one attachment
            final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
            emailIntent.setType("text/plain");
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
                    Util.extractEmails(emailTo));
//            emailIntent.putExtra(android.content.Intent.EXTRA_CC,
//                    new String[]{emailCC});
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
            emailIntent.putExtra(Intent.EXTRA_TEXT, emailText);
            ArrayList<Uri> uris = new ArrayList<Uri>();
            //has to be an ArrayList
            if (filePaths != null) {
                //convert from paths to Android friendly Parcelable Uri's
                for (String file : filePaths) {
                    File fileIn = new File(file);
                    Uri u = Uri.fromFile(fileIn);
                    uris.add(u);
                }
            }
            emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
            Intent chooser = Intent.createChooser(emailIntent, "Send mail...");
            activity.startActivityForResult(chooser, 1);
        } catch (Exception e) {
            new ShowToast(context, e.getMessage());
        }

    }

Метод вызова

    List<String> list = new ArrayList<>();
    list.add(TO_ATTACH_ONE);
    list.add(TO_ATTACH_TWO);
    sendMailWithIntent(toAddresses, subject, body, list);