2012-02-29 5 views
0

다른 사용자가 이메일을 복사하여 복사 한 다음 이미지의 "src"값이 변경되면이를 알게되었습니다. 예를 들어 원본 이메일에 첨부 파일 인 이미지가 있고 contentId가 cid : companlyLogo 인 경우 그런 다음 다른 사람이이 전자 메일을 새 초안에 붙여넣고이 src 값을 src = "cid : [email protected]"로 변경하여 보냅니다.이메일에서 이미지 가져 오기

이 이미지를 가져 와서 C#의 이미지 개체에 저장하는 방법에 대한 단서가 없습니다. 현재 EWS API를 사용하고 있습니다. 문제는 사본 붙여 넣기 이후 더 이상 원래 이메일과 같은 첨부 파일이 없다는 것입니다. 아무도이 유형의 이미지를 검색하는 방법에 대한 아이디어가 있습니까? ?????? 지금 이틀 전부터이 주변을 돌아 다닙니다 : (

답변

2

임베디드 이미지는 Exchange에서 전자 메일 첨부 파일로 처리되므로 Item.Attachments 속성에서 이미지를 검색 할 수 있습니다. 다음 예에서는 EWS Managed API LoadPropertiesForItems을 명시 적으로 지정하지 않는 한 EWS는 첨부 파일을로드하지 않습니다.

Attachment.IsInline 속성을 확인하면 첨부 파일이 포함되어 있음을 알 수 있습니다. 첨부 파일을로드하여 디스크에 저장하면 EWS에서 첨부 파일을로드 할 수 있습니다. FileAttachment.Load 방법으로 전화하십시오.

ExchangeService service = GetService(); 
var view = new ItemView(1); 
var searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.Subject, "Some subject text"); 
var items = service.FindItems(WellKnownFolderName.Inbox, searchFilter, view); 
service.LoadPropertiesForItems(items, new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments)); 

var item = items.ElementAt(0) as EmailMessage; 

for (int i = 0; i < item.Attachments.Count; i++) 
{ 
    var att = item.Attachments[i] as FileAttachment; 
    if (att.IsInline && att.ContentType.Contains("image")) 
    { 
     att.Load(String.Format(@"c:\temp\attachedimage_{0}.jpg", i)); 
    } 
}