2012-04-01 6 views
1

C. 의 전자 메일에 대해 Gmail 레이블 (x-gm-labels)을 얻는 방법을 알고 싶습니다. 해당 libetpan 빌드가 x-gm-labels 확장자인지 확인했습니다.전자 메일에 x-gm- 레이블을 얻는 방법

샘플 코드를 모두 작성하는 방법을 알려주세요.

List all Gmail labels

또한 Label message with Gmail system label

좋은 explination을 제공 MrGomez의 의견을 확인하십시오

+1

lib의 작성자가 stackoverflow를 확인 했습니까? 직접 물어 보는 것이 더 좋을지도 모릅니다. https://github.com/dinhviethoa/libetpan/commit/01b2aedbd3ff8febe85beb7227f81895bb2eee3a 그들은 3 개월 전에 이것을 저질렀습니다. –

+0

나는 누군가가 이것을 시도했다고 확신한다. 모든 방향 (IMAP 자체 호출과 같은)도 유용합니다. –

+1

요청하는 기능이 ['src/low-level/imap/xgmlabels.c']에 있습니다 (https://github.com/dinhviethoa/libetpan/). blob/master/src/low-level/imap/xgmlabels.c) 및 [헤더 파일] (https://github.com/dinhviethoa/libetpan/blob/master/src/low-level/imap/xgmlabels.h)). 저자가 이것을 파싱하는 방법은 분명하지 않습니다. [포함 된 테스트 파일 세트] (https://github.com/dinhviethoa/libetpan/tree/master/tests)가 부족합니다. 사용 설명서가없고 강력한 예제가 없다는 것을 감안할 때, 실제로 저자에게 물어봐야 할 좋은 시나리오입니다. – MrGomez

답변

3

알 수 있습니다. this check-in from the original author 추적에서 코드를 libetpan의 IMAP 지원의 기본 처리 동작으로 용접했다. 티켓은 struct mailimap_msg_att_item이다, 코드의 내 역 추적에 따르면

static char * get_msg_att_msg_content(struct mailimap_msg_att * msg_att, 
    size_t * p_msg_size) 
{ 
    clistiter * cur; 

    /* iterate on each result of one given message */ 
    for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; 
     cur = clist_next(cur)) { 
     struct mailimap_msg_att_item * item; 

     item = clist_content(cur); 
     if (item->att_type != MAILIMAP_MSG_ATT_ITEM_STATIC) { 
      continue; 
     } 

    ... 

:

음, 여기, 저자 provides an example of how to set up an IMAP connection successfully. 대신 모든 코드를 스풀링을 밝혀 당신이 관심을 가져야 비트입니다. 여기에서 찾고있는 att_typeMAILIMAP_MSG_ATT_ITEM_EXTENSION이며 거기에서 MAILIMAP_EXTENSION_XGMLABELS을 찾을 때까지 데이터 구조를 따라 가야합니다. 를 분리해야이 같은

뭔가 :

if (item->att_type == MAILIMAP_MSG_ATT_ITEM_EXTENSION) { 
    if (item->att_data.att_extension_data->ext_type == 
     MAILIMAP_EXTENSION_XGMLABELS) { 
     // ... do something ... 
    } 
} 

(경고 :. 검증되지 않은 코드) 여기에서

, 당신은 더 깊이 구조체의 의문 검사를 사용하고 수행 할 수 있습니다. 두드러진 파일은 the test file을 제외한 src/low-level/imap에 모두 포함되어 있습니다. 행운을 빕니다!

+0

이것은 아주 잘 MrGomez입니다. 잘 했어. –

0

볼 .. Gmail IMAP ExtensionsGmail Labels

몇 가지 예 IMAP 확장이 많이 있습니다 당신이 요구하는 기능에 대해.

+0

-1 어떻게 이것이 OP를 도울 수 있는지 전혀 모르겠다. (메일을 가져 오는 것을 제외하고) – RedX

+0

나는 마지막 업데이트에 대한 참조를 넣어 둔다. –

+0

@RedX 나는 왜 당신이 아래로 투표하는지 이해하지 못한다. ., 나의 대답이 꽤 명확 할 때! –

관련 문제