메 일 연락처 가 져 오기 - 원본 코드 첨부
미 담 은 메 일 친 구 를 초대 하 는 기능 이 있 습 니 다. 프로젝트 가 이 기능 을 실현 해 야 하기 때문에 요 며칠 동안 조금씩 연 구 했 습 니 다.마침 오늘 주말 에 여러분 과 함께 나 누 자고 보 냈 습 니 다.
일단 감사 해 야 돼 요[email protected]이 소 형 은 많은 메 일의 연락 처 를 기어 나 왔 다.그리고 jar 로 포장 해서 발 표 했 습 니 다.원본 도 구 글 에 넣 고. 코드 안에 있어 요.
원 리 는 이 렇 습 니 다. 메 일 에 로그 인하 고 관련 정보 (cookies 등) 를 저장 하 며 http client 를 통 해 주소록 이 있 는 페이지 를 방문 하여 관련 연락처 닉네임 과 메 일 을 기어 나 갑 니 다.
코드 는 다음 과 같 습 니 다:
EmailType:
package com.duicky.email;
/**
*
*
* @author luxiaofeng
*
*/
public class EmailType {
public static final int email_gmail = 1;
public static final int email_sina = 2;
public static final int email_163 = 3;
public static final int email_yahoo = 4;
public static final int email_hotmail = 5;
public static final int email_139 = 6;
public static final int email_sohu = 7;
public static final int email_yeah = 8;
public static final int email_126 = 9;
public static final int email_189 = 10;
public static final int email_tom = 11;
public static final int email_msn = 12;
}
EmailManager:
package com.duicky.email;
import java.util.List;
import com.huangzhimin.contacts.Contact;
import com.huangzhimin.contacts.ContactsImporter;
import com.huangzhimin.contacts.ContactsImporterFactory;
import com.huangzhimin.contacts.exception.ContactsException;
/**
*
*
* @author luxiaofeng
*
*/
public class EmailManager {
private static EmailManager emailManager = null;
private EmailManager() {
}
public static EmailManager getInstence() {
if (emailManager == null) {
emailManager = new EmailManager();
}
return emailManager;
}
/**
*
*
* @param type
* 1-gmail,2-sina,3-163,4-yahoo,5-hotmail,6-139,7-sohu,8-yeah,
* 9-126,10-189,11-tom,12-msn
* @param account
*
* @param password
*
* @return
*
* :
* :<c><o><n> </n><e>[email protected]</e></o><o><n> </n><e>431
* @qq.com</e></o></c> C ,o ,n ,e
* :0
* "-1"
*/
public String getEmailContacts(int type, String account, String password) {
StringBuilder sb = new StringBuilder();
ContactsImporter importer = null;
try {
importer = getContactsImporter(type, account, password);
if (importer == null) {
sb.append("-1");
return sb.toString();
}
List<Contact> contacts = importer.getContacts();
int size = contacts.size();
if (size > 0) {
sb.append("<c>");
for (int i = 0; i < size; i++) {
sb.append("<o><n>");
sb.append(contacts.get(i).getUsername());
sb.append("</n>");
sb.append("<e>");
sb.append(contacts.get(i).getEmail());
sb.append("</e></o>");
}
sb.append("</c>");
} else {
sb.append("0");
}
} catch (ContactsException e) {
sb.append("-1");
e.printStackTrace();
}
return sb.toString();
}
/**
*
* @return <count>6<count>
* -1
*/
public String inviteEmailContacts() {
String result = "";
return result;
}
/**
* Importer
* @param type
* @param account
* @param password
* @return
*/
private ContactsImporter getContactsImporter(int type, String account,
String password) {
ContactsImporter importer = null;
switch (type) {
case EmailType.email_gmail:
importer = ContactsImporterFactory.getGmailContacts(account, password);
break;
case EmailType.email_sina:
importer = ContactsImporterFactory.getSinaContacts(account, password);
break;
case EmailType.email_163:
importer = ContactsImporterFactory.getOneSixThreeContacts(account, password);
break;
case EmailType.email_yahoo:
importer = ContactsImporterFactory.getYahooContacts(account, password);
break;
case EmailType.email_hotmail:
importer = ContactsImporterFactory.getHotmailContacts(account, password);
break;
case EmailType.email_139:
importer = ContactsImporterFactory.getOneThreeNineContacts(account, password);
break;
case EmailType.email_sohu:
importer = ContactsImporterFactory.getSohuContacts(account, password);
break;
case EmailType.email_yeah:
importer = ContactsImporterFactory.getSinaContacts(account, password);
break;
case EmailType.email_126:
importer = ContactsImporterFactory.getOneTwoSixContacts(account, password);
break;
case EmailType.email_189:
importer = ContactsImporterFactory.getOneEightNineContacts(account, password);
break;
case EmailType.email_tom:
importer = ContactsImporterFactory.getTomContacts(account, password);
break;
case EmailType.email_msn:
importer = ContactsImporterFactory.getMSNContacts(account, password);
break;
default:
return null;
}
return importer;
}
}
프로젝트 가 필요 합 니 다. 가 져 온 연락 처 를 String 으로 되 돌려 주 고 정규 표현 식 으로 일치 합 니 다. 수정 해 야 할 형 제 는 list 집합 으로 바 꿀 수 있 습 니 다.메 일 을 보 내 는 인터페이스 가 회사 내부 로 설 계 된 물건 이 라 여 기 는 공개 하지 않 습 니 다.
이 항목 은 많은 jar 패 키 지 를 가 져 와 야 합 니 다. jar 패 키 지 는 libs 폴 더 에 통일 적 으로 놓 여 있 습 니 다.형 들 끼 리 buildpath.
테스트 클래스 를 썼 습 니 다. 코드 가 별로 없습니다.
package com.duicky.email;
public class EmailManagerTest {
/**
* @param args
*/
public static void main(String[] args) {
String emailAccount = ""; // your email account
String password = ""; // you know
int type = EmailType.email_msn; // your email type , such : EmailType.email_msn;
String str = EmailManager.getInstence().getEmailContacts(type, emailAccount, password);
System.out.println(" :"+str);
}
}
실행 효 과 는 다음 과 같 습 니 다:
:<c><o><n> 1</n><e>[email protected]</e></o><o><n> 2</n><e>[email protected]</e></o><o><n> 3</n><e>[email protected]</e></o><o><n> 4</n><e>[email protected]</e></o></c>
이 항목 은 약간 부족 해서 대부분의 메 일 을 받 을 수 있 고 개별 메 일 주소록 을 얻 을 수 없다 (예 를 들 어 163, 139 = = =). 모든 학우 들 이 스스로 원본 코드 를 수정 하고 기어 가 려 고 한다.핵심 코드 구 글 코드 의 주 소 는?http://code.google.com/p/contact-list/。
전재 를 환영 합 니 다. 출처 를 밝 혀 주세요. http://blog.csdn.net/dui_cky/article/details/6785250
클릭 하여 이 항목 을 다운로드 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.