Intereting Posts
Сводная область тега PreferenceCategory Как изменить выходной файл медиарекордера, не останавливая медиазапись Как я могу получить последнюю версию ConstraintLayout для Android? Динамическая установка представлений с параметром LayoutParams.addRule на последнюю позицию представления Есть ли способ получить ключевой хэш из подписанного APK? Как удалить выбранный элемент из списка с помощью CursorAdapter Как отправить SMS с помощью Delphi XE5 в Android Внутренний класс фрагмента должен быть статическим Как увеличить размер transport.dump от 256 байт до 512 или более байтов в KSOAP2? Как получить список координат для уличных дорожек с помощью API Google Maps API? HashMap Remove не работает Сведения о доходах AdMob в Google Analytics Почему пользовательские аннотации не отображаются? Android: создание различных версий моего приложения (бесплатно, премиум и т. Д.) С Eclipse Проблема совместимости с датой DatePicker для Android с библиотекой MonkeyTalk

Android отправляет почту со вложением

Я отправляю электронную почту с вложениями! Все в порядке, но есть одна проблема. Файлы, которые я добавил в тело электронной почты, имеют имена «A FULL PATH». Отправка как …

class SendEmailAsyncTask extends AsyncTask <Void, Void, Boolean> { @Override protected Boolean doInBackground(Void... params) { { Context context = getApplicationContext(); Mail m = new Mail("****a@gmail.com", "te****mail"); String[] toArr = {"te****all@yan****"}; m.setTo(toArr); m.setFrom("t****il.ya@gmail.com"); m.setSubject("TESTING"); m.setBody("Принят test"); try { String path = "/mnt/sdcard/qwe"; File fileDir = new File( path ); String[] _files = fileDir.list(); for ( int i = 0 ; i < _files.length ; i++ ) { _files[i] = path + "/"+ _files[i]; // _files[i] = path + "/"+ _files[i].substring(_files[i].lastIndexOf("/")); m.addAttachment(_files[i]); Log.v("list sending", _files[i]); Log.v("list sending", _files[i].substring(_files[i].lastIndexOf("/"))); } if(m.send()) { for ( int i = 0 ; i < _files.length ; i++ ) { Log.v("test mail result", "success"); } } else { Log.v("test mail result", "fail"); } } catch(Exception e) { Log.v("test mail result", "error while sending"); } } return null; } } 

Журнал отправки …

  02-07 11:18:15.542: V/list sending(18255): /mnt/sdcard/qwe/1233.txt 02-07 11:18:15.542: V/list sending(18255): /1233.txt 02-07 11:18:15.542: V/list sending(18255): /mnt/sdcard/qwe/123.txt 02-07 11:18:15.542: V/list sending(18255): /123.txt 02-07 11:18:15.552: V/list sending(18255): /mnt/sdcard/qwe/12333.txt 02-07 11:18:15.552: V/list sending(18255): /12333.txt 02-07 11:18:15.722: D/dalvikvm(18255): GC_FOR_MALLOC freed 3564 objects / 349496 bytes in 33ms 02-07 11:18:15.722: I/global(18255): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required. 02-07 11:18:16.222: I/SSLSocketFactory(18255): Using factory org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl@4006ed60 02-07 11:18:17.084: D/NativeCrypto(18255): SSL_OP_NO_SSLv3 is set 02-07 11:18:18.562: I/global(18255): Default buffer size used in BufferedOutputStream constructor. It would be better to be explicit if an 8k buffer is required. 02-07 11:18:18.562: I/global(18255): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required. 02-07 11:18:19.152: I/global(18255): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required. 02-07 11:18:27.687: V/test mail result(18255): success 

Как я могу получить только имена файлов в своих приложениях?

    Вот как выглядит мое addAttachment:

     public static void addAttachment(String filename) throws Exception { BodyPart messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); // Truncating the full file path to just filename Pattern p = Pattern.compile("[^/]*$"); Matcher m = p.matcher(filename); if (m.find()) messageBodyPart.setFileName(m.group()); else messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); } 

    Надеюсь это поможет!

    Я не знаю, что такое класс «Почта», но похоже, что ошибка находится в методе Mail.addAttachment.

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

     messageBodyPart.setFileName(filename.substring(filename.lastIndexOf("/") + 1));