2012-07-20 36 views
0

我已經創建了一個CPP COM DLL來讀取EML文件並將其添加到Lotus Notes NSF文件中。使用MIMEContent來創建郵件,但問題是當我將文檔添加到文件夾視圖$收件箱相同的郵件複製$發送物品文件夾。Lotus Notes文檔同時出現在收件箱和SentItem中

我讀的EML通過奇爾卡特郵件MIME字符串並將其添加到Notes文檔

MIMEStreamWrite((unsigned char*)ch_mimeContent,strlen(ch_mimeContent),hMIMEStream); 
if (error == MIME_STREAM_IO) 
{ printf("MIMEStreamPutLine error.\n"); 
MIMEStreamClose(hMIMEStream); return ; } 
// itemize the mime stream to the note error = MIMEStreamItemize(handle,NULL, 0, MIME_STREAM_ITEMIZE_FULL,hMIMEStream); – 

的解決方案給我的是制定一個交付日期

SYSTEMTIME sysdate; 

char dateFormat[100]; 
TIMEDATE start_time;     
char  timetext[MAXALPHATIMEDATE+1]; 
char  far *text_pointer; 
email.get_LocalDate(sysdate); 
sprintf(dateFormat,"%02d/%02d/%04d %d:%d:%d", 
     //  // sysdate.wMonth, sysdate.wDay, sysdate.wYear,sysdate.wHour,sysdate.wMinute,sysdate.wSecond); 
strcpy (timetext, dateFormat); 
text_pointer = timetext 
STATUS STATUS; 
if(STATUS error2 =  ConvertTextToTIMEDATE(NULL,NULL, 
                 &text_pointer, 
                 MAXALPHATIMEDATE, 
                 &start_time)) 

if(Status= MailAddHeaderItem(handle, MAIL_DELIVEREDDATE_ITEM_NUM, (char *)(&start_time), (WORD)sizeof(TIMEDATE))) 
MIMEStreamClose(hMIMEStream);  
newdoc.Save(); 

問題是這裏的時候,我在我的語言環境中運行這個代碼,這是「英語我們」它工作正常。 但是對於其他地區(德國),它在蓮花筆記中的給定日期失效爲17.06。 ** **:;

我也曾嘗試

LNITEM date; 
getitem("Posted date",&date); 
and the set the delivery date CreateItem("Delivered Date",&date) 

但沒有發現任何NSF文件。

在我的設置交貨日期的代碼中是否有任何錯誤。 或任何其他替代品我應該嘗試

回答

0

首先,設置DeliveredDate的解決方案是正確的。

關於您的本地化問題,請參閱C-API文檔,ConvertTextToTIMEDATE的第一個參數是NULL,它是指向包含有效國際化設置的結構的指針。

由於德語區域設置不理解您使用的「月份/日期/年」語法(在歐洲,我們通常使用更爲理智的day.month.year或year.month.day語法;),ConvertTextToTIMEDATE將失敗你注意到了。

您要麼根據語言環境構建dateFormat字符串,要麼告訴ConvertTextToTIMEDATE tu使用US語言環境。