2012-09-14 7 views
1

java HttpClient 4.x가 설치된 Outlook 용 커넥터 용 라이브러리를 만들고 있습니다. 응용 프로그램에서 메일을 보내야합니다. 초안 폴더에 메시지를 넣을 수 있습니다. 하지만 어떻게 수취인에게 보낼 수 있습니다. 여기에 내가 시도한 코드가있다. 'Httpclient 4.x를 사용하여 메일을 보내는 방법

String strTempURI = "https://" + serverName + "/exchange/" + Username 
      + "/drafts/" +strSubject + "eml"; 
    String strSubURI = "https://" + serverName + "/exchange/" + Username 
      + "/##DavMailSubmissionURI##/"; 

    URI uri=new URI(strTempURI); 
    HttpPut put = new HttpPut(uri); 
    ByteArrayEntity entity = new ByteArrayEntity(byteout1); 
    DefaultHttpClient client =new DefaultHttpClient(); 
    HttpContext localContext = new BasicHttpContext(); 
    CredentialsProvider credsProvider = new BasicCredentialsProvider(); 
    credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST,  
        AuthScope.ANY_PORT,AuthScope.ANY_REALM, AuthPolicy.BASIC), 
       new UsernamePasswordCredentials(Username, password)); 

    client.setCredentialsProvider(credsProvider); 
    put.setHeader("Content-Type", "message/rfc822"); 
    put.setEntity(entity); 
    localContext.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider); 
    HttpResponse response=client.execute(put,localContext); 
    HttpEntity resEntity = response.getEntity(); 
    String result = EntityUtils.toString(resEntity); 

"byteout1"에는 메일 내용이 들어있다. client.execute 후() 나는 "strSubURI"당신은 MOVE을 실행하기 위해 WebDAV를 지원이 필요

답변

0

내 질문에 대한 대답으로 컨텐츠를 이동하려는. juts MoveMethod (sourceurl, desturl) 만들기 사용

String strTempURI = "https://" + serverName + "/exchange/" + Username 
     + "/drafts/" +strSubject + "eml"; 
String strSubURI = "https://" + serverName + "/exchange/" + Username 
     + "/##DavMailSubmissionURI##/"; 

URI uri=new URI(strTempURI); 
HttpPut put = new HttpPut(uri); 
ByteArrayEntity entity = new ByteArrayEntity(byteout1); 
DefaultHttpClient client =new DefaultHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
CredentialsProvider credsProvider = new BasicCredentialsProvider(); 
credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST,  
       AuthScope.ANY_PORT,AuthScope.ANY_REALM, AuthPolicy.BASIC), 
      new UsernamePasswordCredentials(Username, password)); 

client.setCredentialsProvider(credsProvider); 
put.setHeader("Content-Type", "message/rfc822"); 
put.setEntity(entity); 
localContext.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider); 
HttpResponse response=client.execute(put,localContext); 
HttpEntity resEntity = response.getEntity(); 
String result = EntityUtils.toString(resEntity); 

MoveMethod move = new MoveMethod(uri.toString(), strSubURI); 
     move.setHeader("Destination", strSubURI); 
     HttpResponse status = client.execute(move); 
관련 문제