没有应用程序执行此动作Android电子邮件

时间:2016-05-18 15:27:08

标签: java android email email-client

有很多人都有这个问题,但他们的解决方案都不适用于我,我尝试将类型从rfc822更改为纯文本,在我的模拟器中打开电子邮件并设置帐户,使用intent action_sendto Uri.parse&#34 ; mailto:",动作发送。

我是否需要在模拟器中安装一些东西,或者这真的适用于真正的手机?

send  =(Button) findViewById(R.id.send_button);

send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                Intent emailIntent = new Intent(Intent.ACTION_SEND);
                emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"myemail@gmail.com"});
                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
                emailIntent.putExtra(Intent.EXTRA_TEXT, "HEY");
                emailIntent.putExtra(Intent.EXTRA_CC, "example@gmail.com");
                emailIntent.setType("message/rfc822");
                startActivity(Intent.createChooser(emailIntent, "Choose an Email client :"));
            } catch (ActivityNotFoundException anfe) {
                Toast toast = Toast.makeText(email.this, "Sorry, no email client found", Toast.LENGTH_LONG);
                toast.show();
            }
        }
    }
);

1 个答案:

答案 0 :(得分:0)

以下代码正常,

使用此代码发送电子邮件

 publicvoid sendEmail() {
      Log.i("Send email", "");
      String[] TO = {""};       // Array of email address whom you want to send email
      String[] CC = {""};       // Array of email address whom you want to keep in CC
      Intent emailIntent = new Intent(Intent.ACTION_SEND);

      emailIntent.setData(Uri.parse("mailto:"));
      emailIntent.setType("text/plain");
      emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);    // E-mail Addresss
      emailIntent.putExtra(Intent.EXTRA_CC, CC);
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");  // Email Subject
      emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");  // your E-mail body

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

了解详情

意图对象 - 发送电子邮件的操作您将使用ACTION_SEND操作启动安装在Android设备上的电子邮件客户端。以下是使用ACTION_SEND操作创建意图的简单语法

Intent emailIntent = new Intent(Intent.ACTION_SEND);

意图对象 - 要发送电子邮件的数据/类型要发送电子邮件,您需要使用setData()方法将mailto:指定为URI,数据类型将指向text/plain使用setType()方法如下 -

emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

意图对象 - 发送电子邮件的额外内容

EXTRA_BCC

一个String [],其中包含应该被盲目复制的电子邮件地址。

EXTRA_CC

一个String [],保存应该被复制的电子邮件地址。

EXTRA_EMAIL

一个String [],包含应该传递给的电子邮件地址。

EXTRA_HTML_TEXT

与Intent关联的常量String,与ACTION_SEND一起使用,以EXTRA_TEXT替代HTML格式的文本。

EXTRA_SUBJECT

保持邮件所需主题行的常量字符串。

EXTRA_TEXT

与Intent关联的常量CharSequence,与ACTION_SEND一起使用以提供要发送的文字数据。

EXTRA_TITLE

CharSequence对话框标题,用于与ACTION_CHOOSER一起使用时提供给用户。