我想在我的应用程序中使用用户已经设置的任何默认邮件提供商发送电子邮件。必须能够在不需要任何用户交互的情况下发送电子邮件。如果我能避免显示任何 UI,那将是最好的解决方案。不能接受的一件事是硬编码或要求用户输入他们的电子邮件凭据。用户必须已经使用他们的凭据设置了他们的帐户,例如 Gmail。我的应用程序所做的只是使用已设置的现有电子邮件提供商。
我在这里找到的大多数帖子都使用 Intent,但据我所知,这将显示电子邮件 UI 并要求用户按下“发送”按钮。
最佳答案
经过进一步挖掘,我认为有一个解决方案。 Google 现在添加了对使用 OAuth 2.0 的 Gmail 身份验证的支持,这避免了访问用户的用户名和密码的需要。由于我的应用程序要求用户拥有 Gmail 帐户,因此这可能是解决方案。当然,这对不支持 OAuth 的任何其他电子邮件提供商都不起作用,但由于 Google 关心保护用户名/密码,因此这种方法似乎是正确的。需要研究如何在我的应用程序中使用 OAuth,但理论上它应该是可能的。用户授予对 Google 服务的权限后,该应用程序会收到一个 token ,该 token 在权限保留的生命周期内使用。尚未解决的问题是 Gmail 是否支持使用 OAuth 发送电子邮件:
Google Brings OAuth 2.0 Support To Gmail And Google Talk To Make Third-Party Apps More Secure
Google's sample code for Gmail support and OAuth2
Android app demonstrating how to send e-mail using OAuth
YouTube video showing how a mobile app uses 2 step verification in an app
关于android - 无需用户交互即可在 Android 中发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15106774/