вложение электронной почты не успешно в Android

1

рассмотрите приведенный ниже код:

String outFileName = "/data/data/com.packagename/attachment.ics";

emailintent.putExtra(Intent.EXTRA_STREAM, Uri.parse(outFileName));
        emailintent.setType("plain/text");
        startActivity(Intent.createChooser(emailintent, "Send mail..."));

Приведенный выше код запускает почтовый клиент с приложением, показанным при его запуске. Но когда я отправляю электронное письмо, вложение не получено. Тело принимается. что здесь происходит не так?

благодарим вас заранее.

EDIT: Есть ли определенный тип mime, который мне нужно поставить для файлов ics? Я даже попробовал отправить txt файл, но это тоже не отправляется. Вложение действительно появляется, когда я пытаюсь отправить электронное письмо, но оно не появляется, когда я получаю письмо

Теги:

5 ответов

3

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

Все, что мне нужно было сделать, это поместить его в общий каталог на sdcard и voila.. клиент электронной почты получил доступ, и я начал получать сообщения, отправленные с моего приложения.

PS: Даже для файлов Iics тип MIME является простым/текстовым.

спасибо за вашу помощь.

1

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

нет способа отправить прикрепленный файл по электронной почте из внутреннего хранилища.

Для отправки файла по электронной почте сначала сохраните этот файл на внешнем хранилище, а затем присоедините и отправьте.

Я использую этот код для сохранения файла на SDCard

public void copyFileToSdCard()
    {
        File f = new File(Environment.getExternalStorageDirectory() + "/File name");
        if(f.exists()) 
        {

        }
        else
        {
            try 
            {
                File sd = Environment.getExternalStorageDirectory();
                File data = Environment.getDataDirectory();

                if (sd.canWrite()) 
                {
                    String currentPath = "file path";
                    String backupFilePath = "file name ";
                    File currentFile = new File(data, currentPath);
                    File backupFile = new File(sd, backupFilePath);

                    if (currentFile.exists()) {
                        FileChannel src = new FileInputStream(currentFile).getChannel();
                        FileChannel dst = new FileOutputStream(backupFile).getChannel();
                        dst.transferFrom(src, 0, src.size());
                        src.close();
                        dst.close();
                    }
                }
            } 
            catch (Exception e) {
                Log.w("Backup", e);
            }
        }
    }

и это для прикрепления и отправки

Intent i = new Intent(Intent.ACTION_SEND);
            i.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] {emailAddress}); 
            i.putExtra(Intent.EXTRA_SUBJECT, "Subject text");
            i.putExtra(Intent.EXTRA_TEXT, "Body text");
            Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "file name"));
            i.putExtra(Intent.EXTRA_STREAM, uri);
            i.setType("text/plain");
            startActivity(Intent.createChooser(i, "Send mail"));
1
  • 0
    не работает, что вы предложили выше. я все еще не могу получить вложение
0

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

emailintent.setType("text/calendar");
  • 0
    какое отношение это имеет к вложению электронной почты .. почему не отображается при получении письма ... его отображается при отправке письма
  • 0
    или emailintent.setType ("text / plain");
Показать ещё 8 комментариев
0
public class SendingMail {

public static void SendingMail(Context context) {

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

    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});  

    emailIntent.setType("text/html");


    // Image file saved in sdcard 

        emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+File.separator+"sdcard"
                + File.separator + "MyImage.png"));


    emailIntent.putExtra(Intent.EXTRA_TEXT, "My image");

    context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}

}

Это сработает...

  • 0
    попробовал выше, не работает.
  • 0
    Вы дали разрешение на интернет? а ваш путь к файлу правильный?
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню