Android 检查gmail Inbox邮件
来源:互联网 发布:淘宝淘口令怎么用 编辑:程序博客网 时间:2024/05/21 10:24
最近实现了一个android程序,能从一个gmail帐户中得到收件箱(Inbox)里面邮件信息,如多少未读邮件,邮件总数等。类似的功能,网上有很多例子。
JavaMailInfo.java
实现原理还是用java提供的一些类,先看一看界面效果:
图一:输入email地址和密码,只能是gmail的,别的邮件目前没做
图二:连接服务器过程中。
图三:结果,我只实现了一些简单的功能,别的没有实现。
下面说一下怎么实现的:
最重要的是需要三个包,也就是.jar,分别是:mail.jar, additional.jar, activation.jar。我当时就想,为什么sun不把这几个包放在它标准的SDK里,像什么xml解析,加密等都放到标准SDK里了,怎么这个不呢?后来我想了一下,可能是因为这个是跟应用密切相关的东西,所以他们认为不适合放到SDK里。也只是我的猜想。
这个三个包可以从sun官网上下载,也可以下到source,开源的。
把三个包下载后,放在android工程目录的lib文件内,如果没有就新建一个,然后加入到工程中。
同时,一定要在AndroidManifest.xml中作如下声明:
<!-- mail.jar --> <uses-library android:name="javax.mail" /> <!-- activation.jar --> <uses-library android:name="javax.activation" /> <!-- additional.jar --> <uses-library android:name="org.apache.harmony.awt" />
实现代码如下:
JavaMailUtil.java
import java.util.Properties;import javax.mail.Folder;import javax.mail.MessagingException;import javax.mail.NoSuchProviderException;import javax.mail.Session;import javax.mail.Store;import com.lee.demo.javamail.model.JavaMailInfo;public class JavaMailUtil{ private static final String FOLDERTYPE_INBOX = "INBOX"; public static boolean getInboxMailsInfo(JavaMailInfo outInfo) { boolean retVal = false; try { final String email = outInfo.email; final String password = outInfo.password; Properties props = System.getProperties(); props.setProperty("mail.store.protocol", "imaps"); Session session = Session.getDefaultInstance(props, null); Store store = session.getStore("imaps"); store.connect("imap.gmail.com", email, password); Folder inbox = store.getFolder(FOLDERTYPE_INBOX); inbox.open(Folder.READ_ONLY); outInfo.allMailsCount = inbox.getMessageCount(); outInfo.unreadMailsCount = inbox.getUnreadMessageCount(); outInfo.newMailsCount = inbox.getNewMessageCount(); outInfo.isSuccessful = true; inbox.close(false); store.close(); retVal = true; } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } return retVal; }}
JavaMailInfo.java
public class JavaMailInfo{ public int folderType; public int unreadMailsCount; public int allMailsCount; public int newMailsCount; public boolean isSuccessful; public String email; public String password;}
- Android 检查gmail Inbox邮件
- Android 调用Gmail发送邮件
- Gmail和Inbox - 为啥谷歌要有两个邮箱
- 用gmail发送邮件
- 巧用gmail转发邮件
- gmail 邮件客户端设置
- JavaMail Gmail 收发邮件
- 配置GMAIL邮件
- 读取Gmail邮件
- gmail,imap 接收邮件
- gmail 删除所有邮件
- 导出gmail邮件
- [LotusNotes] 找回属于Louts Notes Inbox文件夹的 邮件
- Android 实现Google-Inbox ActionBar开关效果
- Android开发 Inbox下拉刷新效果
- [邮件] GMAIL邀请来了
- Gmail的邮件通知管理
- 用Outlook收发gmail邮件
- 自己动手写ORM框架(三):关系映射配置—Table属性
- 软件测试的计划与管理
- 从PC的总线到ARM内部总线
- codeforces #169失败小结
- ios之Quartz
- Android 检查gmail Inbox邮件
- 自己动手写ORM框架(四):关系映射配置—Id属性
- 欧几里得--辗转相处法
- java对象池示例
- aesiOS加密解密
- 编译remail-iphone项目报错 Undefined symbols for architecture armv7 ImapFolderWorker fetchFrom
- 关于char (*p)[] 和char p[]的问题(转)(2006-12-26 21:56)
- java logback手动加载配置文件
- 反射和 访问器之间有某种连线 ,未完待续