当前位置: 首页 > 知识库问答 >
问题:

如何正确使用电子邮件意图?[复制]

支才
2023-03-14

我试图让我的应用程序向电子邮件发送一个新密码,但它会打开一个页面并给出消息“没有应用程序可以执行此操作”,标题为“发送电子邮件”(我知道我有),为什么?我想要一个新密码的想法,但首先我想向编辑文本中键入的电子邮件发送任何内容以进行测试。我尝试过在真实设备上运行它。

public class Glemtpassword extends AppCompatActivity implements View.OnClickListener{

Button nypassword;
EditText email;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_glemtpassword);
    nypassword = (Button) findViewById(R.id.nypassword);
    nypassword.setOnClickListener(this);
    email = (EditText) findViewById(R.id.email);
}

 @Override
public void onClick(View view) {
    if (view == nypassword){
        sendEmail();
    }
}

protected void sendEmail() {
    Log.i("Send email", "");
    Intent emailIntent = new Intent(Intent.ACTION_SEND);

    emailIntent.putExtra(Intent.EXTRA_EMAIL, String.valueOf(email));

    try {
        startActivity(Intent.createChooser(emailIntent, "Send mail..."));
        finish();
        Log.i("Nyt password er sendt til din mail...", "");
    }
    catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(Glemtpassword.this, "Ingen email klient", Toast.LENGTH_SHORT).show();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.Forside) {
        Intent intent = new Intent(this, Forside.class);
        startActivity(intent);
    }
    else if (id == R.id.Logind){
        Intent intent = new Intent(this, LogInd.class);
        startActivity(intent);
    }
    else if (id==R.id.Opretbruger) {
        Intent intent = new Intent(this, OpretBruger.class);
        startActivity(intent);
    }
    return true;
 }
}

编辑:

public class Glemtpassword extends AppCompatActivity implements View.OnClickListener{

Button nypassword;
EditText email;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_glemtpassword);
    nypassword = (Button) findViewById(R.id.nypassword);
    nypassword.setOnClickListener(this);
    email = (EditText) findViewById(R.id.email);
}

 @Override
public void onClick(View view) {
    if (view == nypassword){
        sendEmail();
    }
}

protected void sendEmail() {
    Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto", email.getText().toString(), null));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "Body");
    startActivity(Intent.createChooser(emailIntent, "Send email..."));
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.Forside) {
        Intent intent = new Intent(this, Forside.class);
        startActivity(intent);
    }
    else if (id == R.id.Logind){
        Intent intent = new Intent(this, LogInd.class);
        startActivity(intent);
    }
    else if (id==R.id.Opretbruger) {
        Intent intent = new Intent(this, OpretBruger.class);
        startActivity(intent);
    }
    return true;
 }
}

共有2个答案

东门清夷
2023-03-14

根据这个答案

解决办法应该是:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
        "mailto","abc@gmail.com", null)); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Body"); 
startActivity(Intent.createChooser(emailIntent, "Send email..."));

或者如Android文档中所述,您可以使用:

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
勾学博
2023-03-14

您没有设置MIME类型,也没有提供任何内容。调用putExtra()Intent上的EXTRA_TEXT设置一个值,以及您希望出现在电子邮件正文中的任何内容。然后,在Intent上调用setType()以指示您放置在EXTRA_TEXT中的数据的MIME类型。

 类似资料:
  • 问题内容: 我已经尝试通过库成功使用OAuth进行身份验证。 从客户端重定向回后,我发送成功 我发现什么都没有告诉电子邮件部分(为空): 第一个问题 ,如何正确获取电子邮件?无需使用Google+ API。 编辑#2 我尝试将另一个用于: 并尝试使用较新的API检索电子邮件: 但它给 编辑#3 我尝试使用另一个范围: 并尝试使用以下URL检索电子邮件: 但它仍然像以前一样为空。 第二个问题 ,我可

  • 问题内容: 我想使用go lang在电子邮件正文中发送图像。从 https://github.com/scorredoira/email 现在,我可以将图像文件作为附件发送,但是我需要在电子邮件正文中发送图像文件。 提前致谢。 问题答案: 您可以使用Gomail(我是作者)。看一下Embed方法,它允许您将图像嵌入到电子邮件正文中:

  • 问题内容: 注意:我不想将图像附加到电子邮件 我想在电子邮件正文中显示图片, 我已经尝试了HTML image标签,并且得到了输出,正如您在此中看到的关于如何在电子邮件正文中添加图像的问题一样,我很累。 它对我不起作用,它也给我相同的输出,所以我怀疑是否可以这样做, 我的密码 更新1: 如果我使用该代码,则可以获取文本和图像,但无法在电子邮件正文中看到图像 这是我的代码: 更新2: 我使用了粗体标

  • 问题内容: 我想在电子邮件正文中添加图片。我不想将图像附加到电子邮件,但要在电子邮件正文中添加图像。 这个怎么做? 我正在用这个。 要么 然后像这样显示图像 问题答案: 不幸的是,使用Intents不可能做到这一点。 为什么例如粗体文本显示在EditText上,而不是一个形象的原因是StyleSplan 正在实施Parcelable 而ImageSpan 没有。因此,当在新的Activity中检索

  • 我试图在我的进程中使用节点模块(在本例中为),如下所示: 注意:功能在我按下

  • 问题内容: 我试图为用户建立确认电子邮件地址,以验证他们的电子邮件是真实的。我应该使用哪个软件包来确认用户的电子邮件地址。到目前为止,我使用猫鼬和快递 代码示例 在app.post代码中,如何确认用户的电子邮件地址? 问题答案: 您要找的是“帐户验证”或“电子邮件验证”。有很多Node模块可以执行此操作,但是原理如下: 您的用户模型应具有默认情况下的属性 当用户提交有效的注册表单时,创建一个新用户