我想以编程方式发送电子邮件。
我尝试了以下代码。
final Intent emailIntent = new Intent(
android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] {"abc@gmail.com" });
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"Email Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
"Email Body");
startActivity(Intent.createChooser(
emailIntent,"Send mail..."));
但是问题是,在发送电子邮件之前,应用程序打开了活动
我想直接发送电子邮件,而无需进行公开撰写活动。 这怎么可能?
你为什么不尝试startActivityforResult的东西?
在不使用默认/内置应用的情况下,使用JavaMail API在Android中发送电子邮件的可能重复项
查看链接,您的问题有答案。
使用JavaMail API在Android中发送电子邮件,而无需使用默认/内置应用
@Harry Joy,我知道...您发布时还在写...我的链接直接指向答案...我应该把它拿出来吗?
没问题。 无需删除链接。 实际上,我喜欢您的写作风格。
这要求知道用户的电子邮件凭证,该凭证必须经过硬编码或从用户处请求。 那是一个非常愚蠢的解决方案。
非常感谢你的男人
发布仅链接的答案是不好的做法,请解释链接背后的内容。 另外,如果该链接是指向SO问题的链接,则应将该问题标记为重复,请:)
这可能是最简单的方法-
String recipientList = mEditTextTo.getText().toString();
String[] recipients = recipientList.split(",");
String subject = mEditTextSubject.getText().toString();
String message = mEditTextMessage.getText().toString();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, recipients);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, message);
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent,"Choose an email client"));
引用链接具有正确的答案,但是编写了一些库来简化您的工作。
https://github.com/yesidlazaro/GmailBackground
https://github.com/thegenuinegourav/Android-Email-App-using-Javamail-Api
https://github.com/prashantwosti/BackgroundMailLibrary
因此,不必再次编写所有代码,只需使用这些库中的任何一个即可在很短的时间内完成您的工作。