资讯专栏INFORMATION COLUMN

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

ityouknow / 649人阅读

摘要:关键在于的的获取,在这篇文章中讲的很清楚了,需要使用来获取,关键代码如下获得本机第一个账号注意在获得前要一下,否则会得到的通过回调方法获得获取到了后,剩下的就简单了,按部就班使用发送邮件就可以了,发送邮件的方法参照就可以了。

前景知识: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() {

            @Override
            public void run(AccountManagerFuture 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 就可以了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12070.html

相关文章

  • Android使用apache commons-net发送后台邮件方法

    摘要:总算功夫不负有心人,看到了这两篇文章,,在这两篇文章中介绍了使用来发送邮件的方法。这个就很对路了,出品,正规大厂,质量信得过产品,呵呵。 上一篇文章中我介绍了使用Javamail-android在android中发送后台邮件的方法,但是,这个Javamail-android并不是一个靠谱的开源组织发布的,而且是修改过的Javaee,总觉得用起来别扭,所以我就一直搜寻一种更靠谱的解决方案...

    xfee 评论0 收藏0
  • Camunda: 把邮件扩展集成到业务过程管理中

    摘要:在业务过程系统中集成邮件服务功能发送邮件收取邮件删除邮件收到邮件时执行操作安装要求对于嵌入式过程引擎添加作为应用程序依赖如果使用需要添加如下依赖到文件中对于共享过程引擎添加到服务器的目录中比如还要保证包括下面的依赖 https://github.com/camunda/ca... 在业务过程系统中集成邮件服务. showImg(https://segmentfault.com/img/...

    leo108 评论0 收藏0
  • JavaMail邮件发送不成功那些坑人情况及分析说明

    摘要:网上也有不少人反馈用手机客户端无法使用新浪邮箱发送邮件,随后我尝试用登录新浪邮箱,也出现只能接收邮件而不能发送邮件的情况。三附录错误码及建议解决方法发送邮件成功却收不到邮件或收到邮件无主题无收件人乱码新浪邮箱诚信平台 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解。但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给...

    y1chuan 评论0 收藏0
  • SpringBoot集成邮件发送

    摘要:协议默认为,协议默认为如果设置为如果设置,并且未指定套接字工厂,则启用如果设置为如果设置为扩展如果设置,则指定扩展指定将为连接启用的协议。一:简述  在日常中的工作中难免会遇到程序集成邮件发送功能、接收功能;此篇文章我将使用SpringBoot集成邮件发送功能和接收功能;若对邮件一些基本协议和发送流程不懂的请务必参考我之前写的博客或者浏览网上资料。【邮件基本概念及发送方式】 【JavaMai...

    番茄西红柿 评论0 收藏2637
  • 慕课网_《Java实现邮箱验证》学习总结

    摘要:时间年月日星期三说明本文部分内容均来自慕课网。用户过生日,系统发送生日祝福邮件。将最新活动和优惠以邮件的形式告知会员。通常把处理用户请求邮件发送请求的邮件服务器称为服务器。提供了加密的协议被称为。 时间:2017年06月07日星期三说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zcc...

    marser 评论0 收藏0

发表评论

0条评论

ityouknow

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<