android - 无需用户交互即可在 Android 中发送电子邮件

标签 android email

我想在我的应用程序中使用用户已经设置的任何默认邮件提供商发送电子邮件。必须能够在不需要任何用户交互的情况下发送电子邮件。如果我能避免显示任何 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

OAuth2 Support for Gmail

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 docs on using OAuth 2.0

Code sample to send e-mail using OAuth2

关于android - 无需用户交互即可在 Android 中发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15106774/

相关文章:

python - 在 python 中将 email.HeaderParser 与 imaplib.fetch 一起使用?

rest - 将呈现的电子邮件发送到 SendGrid 的最快方法

Android 4.1.2 或谷歌 API (4.1.2)

暴露电子邮件地址和用户名的安全风险?

android - 如何使用 cordova 3.3 逐步创建推送通知?

java - Android/Facebook API 获得成员(member)以来

mysql - 将邮件同步到 MySQL

php - 如何保存 Swiftmailer 发送的所有电子邮件

android - Flutter:在应用程序关闭或在后台时运行 native Android 代码

android - 改造 @Body 在 HTTP 请求中显示为参数