发送电子邮件的内容类型不起作用

时间:2013-04-14 16:32:21

标签: android email android-intent

我正在尝试使用Intent从Android App发送电子邮件。

我正在使用以下代码:

    Intent email = new Intent(Intent.ACTION_SEND);
    email.putExtra(Intent.EXTRA_TEXT, getString(R.string.emailText));
    email.putExtra(Intent.EXTRA_SUBJECT, "MyBackup");
    email.setType("application/zip");
    email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file://" + this.tmpFile));
    startActivity(Intent.createChooser(email, getString(R.string.strSendEMail)));

代码有效,我收到电子邮件,但ZIP文件在电子邮件中是“普通/文本”......

我做错了什么?

3 个答案:

答案 0 :(得分:0)

尝试使用其他mimetype:

email.setType("application/octet-stream");

答案 1 :(得分:0)

我刚刚尝试发送附有ZIP的电子邮件。不是来自我的程序,而是直接来自我手机的电子邮件程序。 结果相同。嗯,我认为,问题在我的程序中,但在电子邮件程序中......

再次感谢您的帮助。我想,我必须搜索更好的程序来发送电子邮件......

此致

答案 2 :(得分:0)

兄弟我也被同样的问题困住了,在准备消息和调用发送邮件方法之前使用了以下代码。只需添加以下代码。

     Message message = createMessage(toEmail, subject, messageBody, session);
            MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
            mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
            mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
            mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
            mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
            mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
// Additional elements to make DSN work
            mc.addMailcap("multipart/report;;  x-java-content-handler=com.sun.mail.dsn.multipart_report");
            mc.addMailcap("message/delivery-status;; x-java-content-handler=com.sun.mail.dsn.message_deliverystatus");
            mc.addMailcap("message/disposition-notification;; x-java-content-handler=com.sun.mail.dsn.message_dispositionnotification");
            mc.addMailcap("text/rfc822-headers;;   x-java-content-handler=com.sun.mail.dsn.text_rfc822headers");
            new SendEmail(message).execute();

我在另一个帖子中找到了这个答案,请尝试告诉我它是否对您有帮助。