【问题标题】:Properly format email recipient addresses正确格式化电子邮件收件人地址
【发布时间】:2019-07-09 05:34:35
【问题描述】:

我的数据库中有一个电子邮件地址列表,我将其提取到一个数组中。我希望能够通过电子邮件intent 向所有人发送消息。一切正常,但我发现我的 gmail 应用程序正在退回邮件,因为大多数电子邮件地址的格式不正确。 Screenshot

如何删除这些标签,以便将电子邮件地址格式化为仅显示收件人的逗号分隔符?

private List<String> userEmails = new ArrayList<>();
    String emailsWithTags = TextUtils.join(",", userEmails);
            String result = emailsWithTags.replaceAll("<","").replaceAll(">", "");
            Intent email = new Intent(Intent.ACTION_SENDTO);
            email.setData(Uri.parse("mailto:"+ result));
            email.putExtra(Intent.EXTRA_TEXT, mMessage.getText().toString());
            email.putExtra(Intent.EXTRA_SUBJECT, "Notification ");
            startActivity(Intent.createChooser(email, "Choose an Email client :"));

【问题讨论】:

  • 这个答案没有为我删除标签
  • 但它没有在我的 Logcat 上显示这些标签。我对此感到困惑。
  • 问题解决了吗?我现在对其进行了测试,它工作正常,即没有标签
  • @sano,当我使用 yahoo 应用程序时效果很好,但使用 gmail 应用程序显示标签。

标签: android android-intent gmail


【解决方案1】:

如果评论中提到的上述答案对您没有帮助,您可以进行简单的字符串替换以删除&lt; &gt; 标签,如下所示,

String emailsWithTags = TextUtils.join(",", userEmails);
String result = emailsWithTags.replaceAll("<","").replaceAll(">", "");
Intent email = new Intent(Intent.ACTION_SENDTO);
email.setData(Uri.parse("mailto:"+ result));

【讨论】:

  • 我得到了同样的结果。标签仍然可见。请查看我更新的代码
猜你喜欢
  • 2010-10-31
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多