You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ACTION_SENDTO Intent时EXTRA_EMAIL无法传递收件人值问题排查

解决ACTION_SENDTO Intent中Gmail无法接收EXTRA_EMAIL的问题

问题核心在于Gmail对ACTION_SENDTO类型的mailto Intent,会优先解析URI中的收件人参数,而非Intent的EXTRA_EMAIL附加数据。这是因为ACTION_SENDTO属于基于URI的Intent规范,设计上更依赖URI本身携带的信息,而EXTRA_EMAIL通常是给ACTION_SEND这类通用发送Intent使用的。

你需要把收件人信息直接嵌入到mailto URI中,而不是通过putExtra(Intent.EXTRA_EMAIL)传递,修改后的代码如下:

val intent = Intent(Intent.ACTION_SENDTO).apply {
    // 直接将收件人拼入mailto URI
    data = Uri.parse("mailto:to1,to2")
    putExtra(Intent.EXTRA_SUBJECT, "subject")
    putExtra(Intent.EXTRA_TEXT, "text")
}

如果需要更灵活的构造方式,也可以通过Uri.Builder来构建:

val mailUri = Uri.Builder()
    .scheme("mailto")
    .path("to1,to2")
    .build()

val intent = Intent(Intent.ACTION_SENDTO).apply {
    data = mailUri
    putExtra(Intent.EXTRA_SUBJECT, "subject")
    putExtra(Intent.EXTRA_TEXT, "text")
}

这样修改后,Gmail就能正确识别并填充收件人信息了,其他主流邮件客户端(如Outlook)也会遵循这个规范,兼容性更好。

内容的提问来源于stack exchange,提问作者Steven-Carrot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:01:08