2013-07-26 88 views
0

我正在開發一款運行實驗的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()); 
    } 
} 

回答

0

您是否可以選擇使用電子郵件調度程序來達到此目的?如果是這樣的話,您可以使用Email-Bot並將其配置爲以可配置的時間間隔將帶有附件的電子郵件發送到特定帳戶。如果需要,也可以在發送郵件後設置附件的刪除。

相關問題