Я разрабатываю приложение для Android, которое запускает эксперименты и получает статистику с Android-устройств. После получения результатов приложение пытается отправить их по электронной почте (с помощью Intent.ACTION_SEND). Однако у меня возникла проблема с размером необработанного сообщения, поэтому сообщение сжимается перед отправкой с использованием GZip. Я не хотел бы создавать файл для прикрепления к сообщению, как и в случае использования putExtra (Intent.EXTRA_STREAM, ...). Было бы очень просто, если бы я мог изменить заголовки сообщений, но, похоже, нет никакого способа сделать это. Я также пытался помещать информацию заголовков перед сообщением, но приложение не было распознано клиентом GMail. Android включил все сообщение внутри чего-то вроде другого вложения, имеющего текстовый/обычный тип. Есть ли способ отправить сообщение с вложением без создания файлов?Отправить электронное письмо с приложением на Android
private void sendResults(String title) {
String body;
try {
body = "Content-type: multipart/mixed; boundary=\"anexo\"\n\n";
body += "--anexo\n";
body += "Content-type: application/gzip; name=\"results.gz\" \n";
body += "Content-disposition: attachment; filename=\"results.gz\" \n";
body += "Content-Transfer-Encoding: base64 \n";
body += Base64.encodeToString(ZipUtil.compress(results).getBytes(), Base64.DEFAULT) + "\n";
body += "--anexo\n";
body += "Content-type: text/plain; charset=us-ascii \n";
body += "Results.\n";
body += "--anexo--\n\n";
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, body);
String[] to = { "[email protected]" };
sendIntent.putExtra(Intent.EXTRA_EMAIL, to);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "[dsp-benchmarking] "+title);
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send results"));
} catch (IOException e) {
Log.e("SEND_RESULTS", "Error: " + e.getMessage());
}
}