通过使用此代码,我可以直接获取 gmail 撰写页面,但我想直接发送此邮件而不进入 gmail 页面。意味着当我点击 Activity 的发送按钮时,它应该直接将邮件发送到特定的收件人,而不会在 gmail 撰写页面上出现。
protected 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,activation.jar是发送java邮件所必需的。如果添加这些 jar ,可能会增加 APK 大小。 Link
或者,您可以在服务器端代码中使用 Web 服务,它将使用相同的 mail.jar 和 activation.jar 来发送电子邮件。您可以通过 asynctask 调用网络服务并发送电子邮件。引用相同的链接
关于android - 如何在不打开gmail撰写页面的情况下直接通过gmail发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032681/