0

我创建了一个 CPP COM dll 来读取 EML 文件并将其添加到 Lotus notes NSF 文件中。使用 MIMEContent 创建邮件,但问题是当我将文档添加到文件夹视图 $Inbox 时,相同的邮件被复制 $Sent Item 文件夹。

我正在通过 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();

当我在“我们英语”的语言环境中运行此代码时,问题就在这里,它工作正常。但对于其他语言环境(德国),它在 Lotus note 中给出的日期为 17.06 失败。** **: ;

我也试过

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

但在nsf中没有找到任何文件。

我设置交货日期的代码有什么问题吗?或我应该尝试的任何其他选择

4

1 回答 1

0

首先,设置 DeliveredDate 的解决方案是正确的。

关于您的本地化问题,请参阅 C-API 文档,ConvertTextToTIMEDATE 的第一个参数(您将其设为 NULL)是指向包含有效国际化设置的结构的指针。

由于德语语言环境不理解您使用的“月/日/年”语法(在欧洲,我们通常使用更合理的 day.month.year 或 year.month.day 语法;),因此 ConvertTextToTIMEDATE 将失败,正如您所注意到的。

您要么必须根据语言环境构建 dateFormat 字符串,要么告诉 ConvertTextToTIMEDATE 你使用美国语言环境。

于 2012-07-22T12:34:31.793 回答