通过使用此代码,我能够直接获取Gmail Compose页面,但我想直接发送此邮件,并在Gmail页面上出来。意味着当我点击我的发送按钮时,它应该直接将邮件发送到矛盾的recage,在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,激活。需要发送Java电子邮件。如果添加了这些罐子,它可能会增加APK尺寸。链接

  2. 或者,您可以在服务器端代码上使用Web服务,这将使用相同的mail.jar和Activation.jar发送电子邮件。您可以通过ASYNCTASK调用Web服务并发送电子邮件。请参阅相同的链接

其他提示

否,您无法在没有用户干预的情况下从Gmail发送邮件,这样做会提高安全问题。只有您可以通过上面的意图调用该应用程序的东西。否则您可以使用任何Java邮件API发送邮件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top