脚本宝典收集整理的这篇文章主要介绍了刚刚学习到的Android使用Javamail通过XOauth调用Gmail API发送邮件的方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
前景知识:OAuth,Javamail-android,Javamail 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,请注明来意。