【发布时间】:2014-07-30 09:01:00
【问题描述】:
通过使用此代码,我可以直接获取 gmail 撰写页面,但我想直接发送此邮件,而不会出现在 gmail 页面上。意味着当我点击我的活动发送按钮时,它应该直接将邮件发送到特定的收据,而不会在 gmail 撰写页面上进行。
受保护的无效 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();
}
}
【问题讨论】:
-
您需要使用 JAVAMAil API .. 上面的链接提供了相同的 ..
-
上面引用的代码全是这些common mistakes。请参阅JavaMail FAQ for Gmail instructions。
标签: android email android-intent gmail jakarta-mail