如何直接通过Gmail发送邮件,直接开放Gmail Compose页面
-
21-12-2019 - |
题
通过使用此代码,我能够直接获取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();
}
}
. 解决方案
如果通过应用程序发送,则需要用户干预。
没有用户干预,您可以如下发送:
-
从客户端发送电子邮件apk。此处mail.jar,激活。需要发送Java电子邮件。如果添加了这些罐子,它可能会增加APK尺寸。链接 “
-
或者,您可以在服务器端代码上使用Web服务,这将使用相同的mail.jar和Activation.jar发送电子邮件。您可以通过ASYNCTASK调用Web服务并发送电子邮件。请参阅相同的链接
其他提示
否,您无法在没有用户干预的情况下从Gmail发送邮件,这样做会提高安全问题。只有您可以通过上面的意图调用该应用程序的东西。否则您可以使用任何Java邮件API发送邮件。
不隶属于 StackOverflow