Een e-mailclient openen door op een knop te klikken

Ik ben een app aan het ontwerpen waarin ik een e-mailclient moet openen door op een knop te klikken. De e-mailclient moet worden geopend met een vooraf gedefinieerd onderwerp en ‘aan’-adres. Is er een manier om dit te bereiken? Geef me alstublieft de oplossing en een codevoorbeeld indien mogelijk…


Antwoord 1, autoriteit 100%

Gaat als volgt:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" });
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_TEXT, "mail body");
startActivity(Intent.createChooser(intent, ""));

Als alternatief kunt u IntentFactory.getSendEmailIntent(String mailTo, String mailCC,
Tekenreeksonderwerp, CharSequence-tekst, Bestandsbijlage)
.


Antwoord 2, autoriteit 51%

Gebruik deze code om alleen e-mailclients weer te geven:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:[email protected]?subject=" + Uri.encode(subject) + "&body=" + Uri.encode(body));
intent.setData(data);
startActivity(intent);

Als je al een standaard e-mailclient hebt gekozen, wordt deze gestart. Anders wordt er een lijst met beschikbare e-mailclients weergegeven.


Antwoord 3, autoriteit 4%

Als je een e-mailadres op het scherm hebt, kun je het gewoon in je xml gebruiken, zoals dit:

android:autoLink="email"

Antwoord 4, autoriteit 4%

Ok – nu werkt het bovenstaande antwoord niet meer voor mij in het jaar 2020. Ik heb iets gevonden op de officiële Google-ontwikkelaarssites dat voor mij werkte.

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);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }

Antwoord 5

Gebruik bij voorkeur constanten indien beschikbaar, zoals voor intent.type ClipDescription.MIMETYPE_TEXT_PLAIN

Kotlin:

val intent = Intent(Intent.ACTION_SEND)
intent.type = ClipDescription.MIMETYPE_TEXT_PLAIN
intent.putExtra(Intent.EXTRA_EMAIL, arrayOf("emailId 1", "emailId 2"))
intent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject for email")
intent.putExtra(android.content.Intent.EXTRA_TEXT, "Description for email")
startActivity(Intent.createChooser(intent,"Send Email"))

Antwoord 6

U kunt de e-mailclient op de emulator openen door uw e-mailadres te configureren met e-mailinbouw met e-mail. Wanneer u belt, wordt de intentie geopend en wordt e-mail verzonden.

Other episodes