如何发送电子邮件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何发送电子邮件?相关的知识,希望对你有一定的参考价值。

我发现了一种通过android应用发送电子邮件的算法。当我运行它时,它会打开我可以选择发送的应用列表,但是,我只想使用Gmail应用。

这是代码:

protected void sendEmail(String subject, String text) {
    Log.i("Send email", "");
    String[] TO = {"email@gmail.com"};

    Intent emailIntent = new Intent(Intent.ACTION_SEND);

    emailIntent.setData(Uri.parse("mailto:"));
    emailIntent.setType("message/rfc822");
    emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(Intent.EXTRA_TEXT, text);

    try {
        startActivity(Intent.createChooser(emailIntent, "Send mail..."));
        finish();
        Log.i("Finished sending email!", "");
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(getApplicationContext(), "There is no email client installed.", Toast.LENGTH_SHORT).show();
    }
}

提前致谢!

答案

隐式意图声明要执行的一般操作,在您的情况下,每个具有电子邮件客户端的意图过滤器的应用程序,可以是Gmail,Outlook或您的设备具有的任何电子邮件客户端。

在这种情况下,您可以尝试以下代码:

        Intent sendIntentGmail = new Intent(Intent.ACTION_VIEW);
        sendIntentGmail.setType("plain/text");
        sendIntentGmail.setData(Uri.parse(TextUtils.join(",", addresses)));
        sendIntentGmail.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
        sendIntentGmail.putExtra(Intent.EXTRA_EMAIL, addresses);
        if (subject != null) sendIntentGmail.putExtra(Intent.EXTRA_SUBJECT, subject);
        if (body != null) sendIntentGmail.putExtra(Intent.EXTRA_TEXT, body);
        mContext.startActivity(sendIntentGmail);
另一答案

您可以使用以下代码:

 Intent mailClient = new Intent(Intent.ACTION_VIEW);
 mailClient.setClassName("com.google.android.gm", 
 "com.google.android.gm.ConversationListActivity");
 startActivity(mailClient);

以上是关于如何发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

超实用的php代码片段

C#和ASP.NET通过Gmail账户发送邮件的代码

代码片段

如何将字符串数据从活动发送到片段?

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数