我想使用用户已设置的任何默认邮件提供商在我的应用程序中发送电子邮件.必须可以发送电子邮件而无需任何用户交互.如果我可以避免显示任何UI,那将是最好的解决方案.不可接受的一件事是硬编码或请求用户输入他们的电子邮件凭证.用户必须已使用凭据设置其帐户,例如Gmail.我的所有应用程序都使用已设置的现有电子邮件提供商.
我在这里找到的大多数帖子都使用了Intent,但据我所知,这将显示电子邮件用户界面并要求用户按下发送按钮.
经过一番挖掘后,我认为有一个解决方案.Google现在已经添加了对使用OAuth 2.0进行Gmail身份验证的支持,这样就无需访问用户的用户名和密码.由于我的应用需要用户拥有Gmail帐户,因此这可能是解决方案.当然,这不适用于任何其他不支持OAuth的电子邮件提供商,但由于Google担心保护用户名/密码,这种方法似乎是正确的.需要研究如何在我的应用程序中使用OAuth,但理论上应该是可能的.用户授予对Google服务的权限后,该应用会收到一个令牌,该令牌用于该权限保留的有效期.尚未解决的问题是Gmail是否支持使用OAuth发送电子邮件:
Google为Gmail和Google Talk带来OAuth 2.0支持,使第三方应用更加安全