2016-08-03 10 views
0

전자 메일 (즉, 제목, 본문,받는 사람, 보낸 사람, 보낸 사람 등)에서 중요한 정보를 추출 할 수 있도록 특정 Exchange 계정에 들어오는 전자 메일을 처리하는 데 사용하는 ews- 등)을 API 호출을 통해 다른 시스템으로 전달할 수 있습니다. 이메일의 수신자를 식별 할 수 있습니다. 자연스럽게 새 이메일을 수신하는 계정과 일치하기 때문에 발신자가 이메일을 보내는 데 사용한 별칭을 식별 할 수 없습니다.주소가 별칭 인 경우 ews-java-api를 사용하여받는 사람 전자 메일을 식별하는 방법은 무엇입니까?

예를 들어 [email protected]에서 [email protected]으로 전자 메일을 보내면 "bobsmith"계정에서 전자 메일을 가져 와서 제목, 본문 등을 읽을 수 있습니다. 그러나 Bob 스미스 (Smith)는 "[email protected]"이라는 별칭을 가지고 그의 bobsmith 계정으로 이동하고 Jane Doe는 그 주소로 이메일을 보내고 "[email protected]"은 "hero .. . " Exchange 항목에서 메서드 호출을 찾을 수 없습니다. "전자 메일 메시지"형식으로 캐스팅 한 경우에도 "받는 사람 :"필드에 사용 된 주소를 가져올 수 있습니다.

+0

이 답변을 확인하십시오 : http://stackoverflow.com/questions/6213571/exchange-web-services-ews-api-to-header-for-alias – diginoise

+0

그건 훌륭한 출발점입니다. , 나는 그것을 이전에 발견 할 수 없었던 것에 따라. 그러나 C# 코드이며 일부 항목이 ews-java-api 라이브러리로 올바르게 변환되지 않습니다. 나는 C#에 익숙하지 않기 때문에, 기능적 Java와 동등한 것으로 보이지 않기 때문에 propertySet 구문이나 tryGetProperty 함수 같은 것을 어떻게 번역 할 지 모르겠습니다. – spye

+0

위의 예제에 나열된 적절한 헤더를 조사하기 만하면됩니다. 헤더가 프로토콜의 일부이기 때문에, java lib가 헤더를 추출 할 수있는 한, 당신은 괜찮을 것이다 (나는 생각한다). – diginoise

답변

0

그래, 덕분에 @diginoise 덕분에 결과는 다음과 같습니다. 처음에는 코드를 게시하지 않았지만이 코드를 검색하는 다른 사용자에게 도움이 될 것입니다. 동일한 문제가 있습니다.

기본 속성 집합을 사용하여 시작한 다음 mime 내용을 추가하여 mime 콘텐츠가 포함되도록했습니다. 그런 다음 mimecontent를 직접 검사하여 mime 콘텐츠가 포함 된 별칭을 가져옵니다. N 사용 : 만 나열된 첫 번째 이메일 주소를 찾고 있지만 별칭 목록을 처리하지 않습니다, 그래서 당신이 패턴을 수정해야하고 여러 인스턴스를 검색하려면이 작동

FindItemsResults<Item> findResults = ...; // This is several lines, but is well documented in the library 

// Adding MimeContent to the set is key 
PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent); 
service.loadPropertiesForItems(findResults, propertySet); 

for (Item item : findResults) { 
    String messageContent = new String(((EmailMessage) item).getMimeContent().getContent()); 

    // find the alias used 
    Pattern pattern = Pattern.compile("To: \"(.*)\" <(.*?)>"); 
    Matcher matcher = pattern.matcher(messageContent); 
    if (matcher.find()) { 
     System.out.println("Alias is: " + matcher.group(1)); 
    } 
} 

"받는 사람 :"줄을 추출한 다음 "받는 사람"주소가 아닌 실제 보낸 사람 주소를 얻는 방법에 대한 기본 정보를 제공합니다.