美文网首页
使用ACTION_SEND和ACTION_SENDTO发送邮件

使用ACTION_SEND和ACTION_SENDTO发送邮件

作者: CZKGO | 来源:发表于2020-03-24 20:03 被阅读0次

ACTION_SEND

        ACTION_SEND属于Activity Action,其作用是发送一些数据到其他应用,数据的接收者是未指定的,需要用户手动指定,这里我只关注其用于邮件发送时的相关内容

1.createChooser

        ACTION_SEND通常需要用createChooser方法包裹起来,这将会提供给用户一个界面,并指示用户如何操作。

2.setType

        使用setType可以指定MIME类型。

3.Intent.EXTRA_EMAIL,Intent.EXTRA_CC,Intent.EXTRA_BCC,Intent.EXTRA_SUBJECT,Intent.EXTRA_TEXT

        EXTRA_EMAIL-邮件地址

        EXTRA_CC-抄送

        EXTRA_EMAIL-密送

        EXTRA_EMAIL-主题

        EXTRA_TEXT-邮件内容

发送邮件代码
Intent emailIntent = new Intent(Intent.ACTION_SEND);
//👇设置MIME
emailIntent.setType("message/rfc822");
//👇设置邮件接收地址
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@test.mail"});
//👇设置邮件抄送地址
emailIntent.putExtra(Intent.EXTRA_CC, new String[]{"test1@test.mail", "test2@test.mail"});
//👇设置邮件密送地址
emailIntent.putExtra(Intent.EXTRA_BCC, new String[]{"test3@test.mail", "tes4@test.mail"});
//👇设置邮件主题
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "测试主题");
//👇设置要默认发送的内容
String text = "测试内容" +
        //注意这里使用‘\n’进行换行
        "\n" +
        "--来自我的" + android.os.Build.MODEL;
emailIntent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(emailIntent, "请选择一个应用来发送邮件(测试)"));

        当然,又是后你可能并不希望用户选择应用,可以使用setPackage方法直接指定应用,我使用的是Gmail,可以如下所示直接指定:

emailIntent.setPackage("com.google.android.gm");
ACTION_SENDTO

        相比于ACTION_SEND,ACTION_SENDTO直接将数据发送到指定应用

setData

        通过URI指定数据的接收者

发送邮件代码
Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
Uri uri = Uri.parse(
        "mailto:" +
                "test@test.mail" +
                "?cc=test1@test.mail,test2@test.mail"+
                "&bcc=test3@test.mail,test4@test.mail"+
                "&subject=测试主题" +
                "&body=测试内容" + "\n" + "--来自我的" + Build.MODEL);
emailIntent.setData(uri);
startActivity(emailIntent);

注意:部分手机在使用ACTION_SENDTO时,没有设置setData方法,而是使用了Intent.EXTRA_EMAIL,Intent.EXTRA_CC,Intent.EXTRA_BCC,Intent.EXTRA_SUBJECT,Intent.EXTRA_TEXT指定主题,抄送,内容等,依然可以传递数据,但这种方法不可取,因为还是有部分手机不会生效

相关文章

网友评论

      本文标题:使用ACTION_SEND和ACTION_SENDTO发送邮件

      本文链接:https://www.haomeiwen.com/subject/aqpayhtx.html