【问题标题】:How to send mail on button clicked Android Studio?如何在单击按钮的 Android Studio 上发送邮件?
【发布时间】:2019-06-04 13:00:13
【问题描述】:

我想发送电子邮件,当单击按钮时,我想要基于电子邮件的应用程序列表。当我使用下面的源代码时,它会输出所有基于消息的应用程序,如图所示

Intent intent2 = new Intent(Intent.ACTION_SEND);
intent2.setData(Uri.parse("mailto:"));
intent2.setType("plain/text");
intent2.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
startActivity(intent2);

当我点击按钮时,会显示此类应用程序

但我只想要基于电子邮件的应用程序,例如。 我应该改变什么来获得这样的应用列表?

【问题讨论】:

标签: android android-studio email android-intent


【解决方案1】:

你可以用这个

 btnReport.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String mailto = "mailto:useremail@gmail.com" +
                    "?cc=" +
                    "&subject=" + Uri.encode("your subject") +
                    "&body=" + Uri.encode("your mail body");
            Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
            emailIntent.setData(Uri.parse(mailto));

            try {
                startActivity(emailIntent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(context, "Error to open email app", Toast.LENGTH_SHORT).show();
            }
        }
    });

【讨论】:

  • 不使用 send 来消除附件的使用。
【解决方案2】:

只需在 onClicklistener 中调用 Email 的 Intent,

Intent email = new Intent(Intent.ACTION_SEND);  
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});  
email.putExtra(Intent.EXTRA_SUBJECT, subject);  
email.putExtra(Intent.EXTRA_TEXT, message);  

//need this to prompt`enter code here`s email client only  
email.setType("message/rfc822");  

startActivity(Intent.createChooser(email, "Choose an Email client :"));  

【讨论】:

  • 没有变化,它还显示 WhatsApp、Telegram、蓝牙应用程序
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2011-08-04
  • 1970-01-01
  • 2017-09-12
相关资源
最近更新 更多