Как отправить почту через Gmail напрямую без открывания Gmail Page Page

StackOverflow https://stackoverflow.com//questions/25032681

Вопрос

Используя этот код, я могу получить страницу Gmail Compose напрямую, но я хочу отправить эту почту напрямую без выхода на страницу Gmail.Значит, когда я нажимаю на мою кнопку отправки активности, он должен напрямую отправить почту в чистоту Cituder Recipt с OUT GoInd на странице Gmail Compose.

Защищенная void sendemail () {

    String[] recipients = { recieverId.getText().toString() };
    Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));

    email.setType("message/rfc822");

    email.putExtra(Intent.EXTRA_EMAIL, recipients);
    email.putExtra(Intent.EXTRA_SUBJECT, mailSubject.getText().toString());
    email.putExtra(Intent.EXTRA_TEXT, mailBody.getText().toString());

    final PackageManager pm = getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(email, 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)
      email.setClassName(best.activityInfo.packageName, best.activityInfo.name);

    try {

    startActivity(email);
    } catch (android.content.ActivityNotFoundException ex) {

        Toast.makeText(getApplicationContext(),
                "No email client installed.", Toast.LENGTH_LONG).show();

    }

}
.

Это было полезно?

Решение

Если отправка через приложение требуется вмешательство пользователя.

Без вмешательства пользователя, вы можете отправить следующим образом:

  1. Отправить письмо от клиентского apk.Здесь Mail.jar, Activation.jar требуется отправить Java Email.Если эти банки добавлены, это может увеличить размер APK.Ссылка

  2. . В качестве альтернативы вы можете использовать веб-службу на стороне сервера, который будет использовать ту же Mail.jar и Activation.jar, чтобы отправить электронную почту.Вы можете назвать веб-служба через Asynctask и отправить электронную почту.Обратитесь в такую же ссылку

Другие советы

Нет, вы не можете отправить почту от Gmail без вмешательства пользователя, это будет повысить проблему безопасности.Только что вы можете вызвать это приложение через намерение, как вы сделали выше.Или вы можете использовать любую Java Mail API для отправки почты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top