Java 在Android上发送带有附件的电子邮件
我正在为Android开发一个应用程序,它运行实验并从Android设备获取一些统计数据。获得结果后,应用程序尝试通过电子邮件发送结果(使用Intent.ACTION\u send)。但是,我对原始消息的大小有一个问题,因此在使用GZip发送消息之前会对消息进行压缩。我不想创建要附加到消息的文件,就像我使用putExtra(Intent.EXTRA_STREAM,…)时所做的那样。如果我可以修改消息头,这将是非常简单的,但似乎没有办法做到这一点。我也试着在邮件前放上标题信息,但是GMail客户端没有识别出附件——Android将整个邮件嵌入到另一个文本/普通类型的附件中。有没有一种方法可以在不生成文件的情况下发送带有附件的邮件Java 在Android上发送带有附件的电子邮件,java,android,Java,Android,我正在为Android开发一个应用程序,它运行实验并从Android设备获取一些统计数据。获得结果后,应用程序尝试通过电子邮件发送结果(使用Intent.ACTION\u send)。但是,我对原始消息的大小有一个问题,因此在使用GZip发送消息之前会对消息进行压缩。我不想创建要附加到消息的文件,就像我使用putExtra(Intent.EXTRA_STREAM,…)时所做的那样。如果我可以修改消息头,这将是非常简单的,但似乎没有办法做到这一点。我也试着在邮件前放上标题信息,但是GMail客户端
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 = { "example_of_email@gmail.com" };
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());
}
}
您是否可以选择为此目的使用电子邮件计划程序应用程序?如果是这样,您可以使用并配置它,以可配置的时间间隔向特定帐户发送带有附件的电子邮件。如果需要,您还可以设置在发送邮件后删除附件