2012-07-20 93 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语言环境。