`
KG21
  • 浏览: 105424 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取用户的msn和邮箱联系人列表,支持的邮箱包括hotmail, gmail, yahoo, sohu, sina, 163, 126, tom, yeah,

 
阅读更多

http://code.google.com/p/contact-list/

 

获取用户的msn和邮箱联系人列表,支持的邮箱包括hotmail, gmail, yahoo, sohu, sina, 163, 126, tom, yeah, 189和139。

contactlist项目首页和jar包下载在http://code.google.com/p/contact-list/

contactlist项目源代码在http://github.com/flyerhzm/contactlist , google code svn不再更新

Service:

contactlist提供web api调用,必须使用HTTP POST请求,接口如下:

url

:

 https

:

//123.183.209.87:8443/ContactListService/contacts


parameters

:

 account

=

xxx@gmail

.

com

&

password

=

xxxx

&

type

=

gmail

返回json格式如下:

正确的结果:

{

'contacts'

:

 

[{

'username'

:

 

'yyy'

,

 

'email'

:

 

'yyy@gmail.com'

},

 

{

'username'

:

 

'zzz'

,

 

'email'

:

 

'zzz@hotmail.com'

}]}

错误的结果:

{

'error'

:

 

'hotmail protocol changed'

}

ruby客户端: http://github.com/flyerhzm/contactlist-client

web客户端: http://contactlist.heroku.com

Example:

try

 

{


    

ContactsImporter

 importer 

=

 

ContactsImporterFactory

.

getHotmailContacts

(

username

,

 password

);


    

List

<

Contact

>

 contacts 

=

 importer

.

getContacts

();


    

for

 

(

Contact

 contact 

:

 contacts

)

 

{


        

System

.

out

.

println

(

contact

.

getUsername

()

 

+

 

": "

 

+

 contact

.

getEmail

());


    

}




}

 

catch

 

(

ContactsException

 ex

)

 

{


    ex

.

printStackTrace

();




}

Encoding:

项目的输出统一为UTF-8。 对于运行在locale为UTF-8环境(如:Ubuntu, Mac OS X)下的程序,无需任何调整。 对于运行在locale为GBK环境(如:Windows XP)下的程序,需要手动调整编码:

try

 

{


    

ContactsImporter

 importer 

=

 

ContactsImporterFactory

.

getHotmailContacts

(

username

,

 password

);


    

List

<

Contact

>

 contacts 

=

 importer

.

getContacts

();


    

for

 

(

Contact

 contact 

:

 contacts

)

 

{


        

String

 username 

=

 

new

 

String

(

contact

.

getUsername

().

getBytes

(

"UTF-8"

),

 

"GBK"

);


        

System

.

out

.

println

(

username 

+

 

": "

 

+

 contact

.

getEmail

());


    

}




}

 

catch

 

(

ContactsException

 ex

)

 

{


    ex

.

printStackTrace

();




}

另外,在windows下面需要把项目的编码设置为UTF-8,并且确保java文件的编译是用UTF-8的

Project Introduction:

contact-list类库依赖包之commons-httpclient -- http://www.huangzhimin.com/entries/142-contact-list-library-dependency-of-commons-httpclient

contact-list类库依赖包之msnmlib -- http://www.huangzhimin.com/entries/147-contact-list-library-dependency-of-msnmlib

contact-list类库依赖包之json -- http://www.huangzhimin.com/entries/158-contact-list-of-the-json-library-dependency

contact-list类库依赖包之gdata -- http://www.huangzhimin.com/entries/162-contact-list-of-the-gdata-library-dependency

持续更新中...

How to run unit test:

出于安全的考虑,没有把单元测试中的邮箱配置文件和msn配置文件放到svn上,如果需要运行mvn test的话,可以按以下步骤:

1. 新建src/test/resources/email.properties文件,形式如下:

gmail

.

username 

=

 xxx@gmail

.

com
gmail

.

password 

=

 yyy

hotmail

.

username 

=

 xxx@hotmail

.

com
hotmail

.

password 

=

 yyy

livecn

.

username 

=

 xxx@live

.

cn
livecn

.

password 

=

 yyy

onesixthree

.

username 

=

 xxx@163

.

com
onesixthree

.

password 

=

 yyy

onetwosix

.

username 

=

 xxx@126

.

com
onetwosix

.

password 

=

 yyy

sina

.

username 

=

 xxx@sina

.

com
sina

.

password 

=

 yyy

sohu

.

username 

=

 xxx@sohu

.

com
sohu

.

password 

=

 yyy

tom

.

username 

=

 xxx@tom

.

com
tom

.

password 

=

 yyy

yahoo

.

username 

=

 xxx@yahoo

.

com
yahoo

.

password 

=

 yyy

yahoocn

.

username 

=

 xxx@yahoo

.

cn
yahoocn

.

password 

=

 yyy

yahoocomcn

.

username 

=

 xxx@yahoo

.

com

.

cn
yahoocomcn

.

password 

=

 yyy

yeah

.

username 

=

 xxx@yeah

.

net
yeah

.

password 

=

 yyy

oneeightnine

.

username 

=

 xxx@189

.

cn
oneeightnine

.

password 

=

 yyy

onethreenine

.

username 

=

 xxx@139

.

com
oneeightnine

.

password 

=

 yyy

2. 新建src/test/resources/msn.properties文件,形式如下:

username 

=

 xxx@live

.

cn
password 

=

 yyy

3. 在命令行执行mvn test

Change Log:

  • 1.1:
  • First public release
  • 1.2:
  • Fix issue that hotmail can only get first page contact list
  • 1.3:
  • Fix issue for some special sohu mail account
  • 1.4:
  • Fix issue that 163 mail can only get other group contacts
  • 1.5:
  • Fix issue that 126 and yeah mail can only get other group contacts
  • 1.6:
  • Add 189 and 139 mail support
  • 1.6.1:
  • Meet another style 189 mail and add 139 mail importer to ContactsImporterFactory
  • 1.7.0:
  • Get google contacts by gdata api
  • 1.8.0:
  • Get hotmail contacts by windows live contacts api
  • 1.9.0:
  • Better parser for yahoo and tom mail
  • 1.10.0:
  • Use passportName as email for hotmail
  • 1.11.0:
  • Fix 139 for web change and fix 126 and yeah mail when username is empty
  • 1.12.0:
  • Get msn contacts by window live contacts api

Other:

需要留言的话,可以上http://github.com/flyerhzm/contactlist/issues ,我会尽快回复的

由 于这个类库的原理是使用抓取网页来分析联系人列表的,所以会因为邮箱网页的改版而无法正确获取联系人列表。 如果大家在使用的时候发现有邮箱不能获得联系人列表,希望先把类库log4j的level设置为debug,把调试信息和错误信息一起发送给我 flyerhzm@gmail.com,我会尽快解决问题的,谢谢!

分享到:
评论

相关推荐

    asp.net 获取msn和邮箱联系人

    完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、live(Y)、tom(Y)、yahoo(Y)(有点慢)、sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以...

    读取邮箱通讯录、MSN好友列表_修复了不能编译和缺少的文件

    完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、live(Y)、tom(Y)、yahoo(Y)(有点慢)、sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以...

    开源读取邮箱通讯录、MSN好友列表的的功能(大多数主流邮箱)

    完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、live(Y)、tom(Y)、yahoo(Y)(有点慢)、sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以...

    邮箱通讯录 MSN好友列表

    C# 读取各大邮箱的通讯录(联系人),包括:gmail、hotmail、live、sina、sohu、163、126、tom、yeah、yahoo等邮箱均能正常读取。 同时也包括 MSN好友列表

    php导入msn和一些常用邮箱的通讯录

    支持,gmail,yahoo,sohu,sina,tom等邮箱通讯录导入,以及msn联系人导入

    获取邮箱通讯录,msn好友列表的C#类库+Demo

    支持好多种邮箱, sina.com 163.com 126.com yeah.net gmail.com hotmail.com sohu.com tom.com yahoo.com yahoo.com.cn yahoo.cn, 另外有获取msn好友列表的方法。 这个是dll,源码在我的另外一个资源中 新手,代码...

    获取EMAL邮箱通讯录C#版

    此资源包含GMAIL,126,163,HotMail,sina,sohu,tom,yahoo,yeah,msn等主流邮箱和MSN通讯录的导入,其中修复了大多数126,163网站无法获取通讯录的BUG 本人再次声名,此资源绝对能用,除非最近163又改地址了

    读取邮箱通讯录、MSN好友列表的的功能(大多数主流邮箱)

    完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、live(Y)、tom(Y)、yahoo(Y)(有点慢)、sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以...

    分享读取邮箱通讯录的C#代码

    整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、 live(Y)、tom(Y)、yahoo(Y)(有点慢)、 sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以发送邮件...

    获取好友列表发送电子邮件

    支持 163.com 126.com yeah.net sina.com hotmail.com gmail.com live.cn yahoo.cn yahoo.com.cn sohu.com tom.com

    电子邮件登陆器 v1.10

    你不用担心你有多少个电子邮件帐号只要轻轻一按登陆,163 126 188 sohu, yahoo,tom,21cn,sina gmail,qq,hotmail,tianya,baidu 的电子邮件可同时登陆再多的电子邮件帐号也不怕电子邮件管理好方便

Global site tag (gtag.js) - Google Analytics