Intereting Posts
Подвеска двигателя AChart для действительных точек данных Почему мои методы ServiceConnection никогда не выполняются? Диалог Android отклоняется только при втором щелчке. Зачем? Разбор строки JSON из URL (RESTful webservice) с использованием библиотек GSON. Android Невозможно изменить размер внутреннего хранилища эмулятора Android через AVD, config.ini или resize2fs Безопасное приложение для малышей на Android Android, как найти исходящий звонок, присутствовал Странная ошибка «java.io.IOException: EOF» в Android Фоновые процессы случайным образом умирают, когда приложение работает на Samsung S3 Голосовая команда стекла в ближайшем матче из данного списка В чем разница b / w onReceivedHttpError и onReceivedError для WebView Client Как включить динамик для входящего вызова программно в Android L? Переустановка приложения удаляет SQLiteDatabase или SharedPreferences Как воспроизводить звук по умолчанию TICK? Инструменты: overrideLibrary не работает

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));