使用JavaMail API在Android中发送电子邮件,而不使用默认/内置应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (100)

我正在尝试在Android中创建一个邮件发送应用程序。

如果我用:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

这将启动内置的android应用程序;我正在尝试直接按一下按钮发送邮件。使用此应用程序。

提问于
用户回答回答于

SMTP

使用SMTP是一种方法,其他人已经指出了如何做到这一点。请注意,在执行此操作时,你完全绕过内置邮件应用程序,你必须在代码中静态提供SMTP服务器的地址,该服务器的用户名和密码,或者从用户查询。

HTTP

另一种方法是涉及一个简单的服务器端脚本,如php,它接受一些URL参数并使用它们发送邮件。这样,你只需要从设备发出HTTP请求(使用内置库即可轻松实现),并且不需要在设备上存储SMTP登录数据。与直接使用SMTP相比,这是一个间接性,但因为它非常容易从PHP发出HTTP请求和发送邮件,所以它甚至可能比直接方式更简单。

邮件申请

如果邮件将从他已经在手机上注册的用户默认邮件帐户发送,则你必须采取其他方法。如果你有足够的时间和经验,你可能需要查看Android电子邮件应用程序的源代码,看看它是否提供了一些无需用户交互即可发送邮件的入口点(我不知道,但也许有一个)。

也许你甚至找到了查询用户帐户详细信息的方法(因此你可以将它们用于SMTP),尽管我非常怀疑这是可能的,因为这将是一个巨大的安全风险,并且Android的构建相当安全。

用户回答回答于

您可以使用JavaMailAPI来处理电子邮件任务。JavaMailAPI可在JavaEE包中使用,其JAR可供下载。遗憾的是,它不能直接在Android应用程序中使用,因为它使用的是在Android中完全不兼容的AWT组件。

你可以在以下位置找到JavaMail的Android端口:http:/code.google.com/p/javamail-Android/

将JAR添加到应用程序并使用SMTP方法

扫码关注云+社区

领取腾讯云代金券