刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法

发布时间:2019-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

前景知识:OAuthJavamail-androidJavamail api in android using XOauth

我的一个App项目需要在Service中自动发送邮件的功能,因为是后台自动发送邮件,不能出现邮件UI所以需要使用Javamail来发送,在AndROId中并未包含Javamail,所以需要第三方lib:Javamail-android;同时由于我的App的邮件发送服务不应保存用户的邮件帐号与密码(因为会有安全问题),所以就必须要用到XOauth的方式(也就是无需存储用户邮件帐号和密码的方式)来调用Gmail API来发送邮件。

关键在于XOauth的AuthToken的获取,在这篇文章中讲的很清楚了,需要使用AccountManager来获取AuthToken,关键代码如下:

AccountManager accountManager = AccountManager.get(context);

//获得本机第一个google账号
Account me = accountManager.getAccountsByType("com.google")[0]; 

//注意在获得AUTHTOKEN前要invalidateAuthToken一下,否则会得到null的AUTHTOKEN
accountManager.invalidateAuthToken("com.google", mailProperties.oauthToken); 

accountManager.getAuthToken(me, "oauth2:https://mail.google.com/", null, true, new AccountManagerCallback<Bundle>() {

            @Override
            public void run(AccountManagerFuture<Bundle> future) {
                try {
                    //通过回调方法获得AUTHTOKEN         
                    mailProperties.oauthToken = future.getResult().getString(AccountManager.KEY_AUTHTOKEN); 
                    Log.i(SMSBroadcastReceiver2.class.getName(), mailProperties.oauthToken);
                } catch (OperationCanceledException e) {
                    e.printStackTrace();
                } catch (AuthenticatorException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }, null);

获取到了AuthToken后,剩下的就简单了,按部就班使用Javamail发送邮件就可以了,发送邮件的方法参照:Javamail api in android using XOauth 就可以了。

脚本宝典总结

以上是脚本宝典为你收集整理的刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法全部内容,希望文章能够帮你解决刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。