我创建了一个CPP COM dll来读取EML文件并将其添加到Lotus Notes NSF文件中。使用MIMEContent创建邮件,但问题是当我将文档添加到文件夹视图时$ Inbox同一邮件被复制$ Sent Item Folder。
我正在通过chilkat邮件将eml作为mime字符串阅读并将其添加到备注文档
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 :(得分:0)
首先,设置DeliveredDate的解决方案是正确的。
关于您的本地化问题,请参阅C-API文档,您转换为NULL的ConvertTextToTIMEDATE的第一个参数是指向包含有效国际化设置的结构的指针。
由于德语区域设置不理解您使用的“月/日/年”语法(在欧洲我们通常使用更合理的day.month.year或year.month.day语法;),ConvertTextToTIMEDATE将失败你注意到了。
您要么必须根据区域设置构建dateFormat字符串,要么告诉ConvertTextToTIMEDATE使用美国区域设置。