отправить письмо через Android Намерение - PullRequest
0 голосов
/ 10 апреля 2020

Я пытался отправить электронное письмо через Android Намерение, используя приведенный ниже код

    Intent sendIntent = new Intent();

    sendIntent.putExtra(Intent.EXTRA_TEXT, EmailContent);
    sendIntent.putExtra(Intent.EXTRA_EMAIL, RecipientName );
    sendIntent.putExtra(Intent.EXTRA_SUBJECT , subject );
    sendIntent.setType("message/rfc822");
    sendIntent.setAction(Intent.ACTION_SEND);

    Intent chooser = Intent.createChooser(sendIntent , chooser_title );

    if (sendIntent.resolveActivity(getPackageManager()) != null) {
        startActivity(chooser);
    }

В приложении электронной почты данные получателя не обновляются, тогда как все остальные данные, такие как тема, тело получает обновлено с моим вкладом. Не могли бы вы предложить, что нужно сделать, чтобы решить эту проблему.

Ответы [ 3 ]

0 голосов
/ 10 апреля 2020
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..."));
0 голосов
/ 10 апреля 2020

Попробуйте использовать это: - Создайте ресурс String для получателей: -

    <string-array name="receipients">
    <item>mgf@kgf.co</item>
    <item>sdf@kgf.co</item>
</string-array>

и используйте это намерение

     Intent gmailIntent = new Intent(Intent.ACTION_SEND);
        gmailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        gmailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, resources.getStringArray(R.array.receipients));
        gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,subject);
        gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, EmailContent);
        gmailIntent.setType("message/rfc822");
            gmailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
        final PackageManager pm = context.getApplicationContext().getPackageManager();
        final List<ResolveInfo> matches = pm.queryIntentActivities(gmailIntent, 0);
        ResolveInfo best = null;
        for (final ResolveInfo info : matches)
            if (info.activityInfo.packageName.endsWith(".gm") ||
                    info.activityInfo.name.toLowerCase().contains("gmail")) best = info;
        if (best != null)
            gmailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);


        try {
           startActivity(gmailIntent);
        } catch (ActivityNotFoundException ex) {
            Toast.makeText(context.getApplicationContext(), getString(R.string.you_do_not_have_gmail_installed), Toast.LENGTH_SHORT).show();
        }
0 голосов
/ 10 апреля 2020

Попробуйте передать EXTRA_EMAIL как строковый массив.

...