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

韩彬
2023-12-01

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,我会尽快解决问题的,谢谢!

 类似资料: