Java 在Android上发送带有附件的电子邮件

Java 在Android上发送带有附件的电子邮件,java,android,Java,Android,我正在为Android开发一个应用程序,它运行实验并从Android设备获取一些统计数据。获得结果后,应用程序尝试通过电子邮件发送结果(使用Intent.ACTION\u send)。但是,我对原始消息的大小有一个问题,因此在使用GZip发送消息之前会对消息进行压缩。我不想创建要附加到消息的文件,就像我使用putExtra(Intent.EXTRA_STREAM,…)时所做的那样。如果我可以修改消息头,这将是非常简单的,但似乎没有办法做到这一点。我也试着在邮件前放上标题信息,但是GMail客户端

我正在为Android开发一个应用程序,它运行实验并从Android设备获取一些统计数据。获得结果后,应用程序尝试通过电子邮件发送结果(使用Intent.ACTION\u send)。但是,我对原始消息的大小有一个问题,因此在使用GZip发送消息之前会对消息进行压缩。我不想创建要附加到消息的文件,就像我使用putExtra(Intent.EXTRA_STREAM,…)时所做的那样。如果我可以修改消息头,这将是非常简单的,但似乎没有办法做到这一点。我也试着在邮件前放上标题信息,但是GMail客户端没有识别出附件——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 = { "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());
    }
}

您是否可以选择为此目的使用电子邮件计划程序应用程序?如果是这样,您可以使用并配置它,以可配置的时间间隔向特定帐户发送带有附件的电子邮件。如果需要,您还可以设置在发送邮件后删除附件