0

How can I get the body of an email into a memo field? I am getting an error.

I am wanting to draw in the body of the email into a memo field.

Error # 1943 MESSAGE: Member ACTIVEINSPECTOR does not evaluate to an object

USE CMCONTROL IN 0
USE CMEMAILS IN 0

local array MyFiles[1,5]
    nFilesFound = ADIR( MyFiles, ALLTRIM(cmcontrol.cpath) + '*.*')
    xx = 0
for i = 1 to nFilesFound
    xx = xx + 1
    WAIT WINDOW NOWAIT 'FortenStar® Count-O-Matic'+CHR(13)+CHR(13)+'Email Record Count: '+ ALLTRIM(STR(xx))
    ***********************************************************************************
    *** HOW CAN I MAKE THIS WORK?
    ***********************************************************************************     
    msgfile=ALLTRIM(cmcontrol.cpath) + ALLTRIM(cmemails.csubject)
    o = CreateObject("Outlook.Application")
    emailmsg = o.ActiveInspector.CurrentItem
    memofiledvariable = emailmsg.body
    ***********************************************************************************
    ***********************************************************************************
    ***********************************************************************************     
    insert into cmemails (cprimary, csubject, ddate, dtime, cattribs, mbody) values (generateGuid(26), MyFiles[ i, 1], MyFiles[ i, 3], MyFiles[ i, 4], MyFiles[ i, 5], memofiledvariable)
endfor
USE IN SELECT('CMEMAILS')
USE IN SELECT('CMCONTROL')
4

1 回答 1

1

您不能通过在 FoxPro 中使用 CREATEOBJECT 访问打开的 Outlook 实例。您需要使用 GETOBJECT,然后您需要参考您正在使用的细节。

其他一些建议:

  1. 不要使用单字母变量名,即使它们不在 FoxPro 抱怨的短名单中。
  2. 在对它做任何事情之前测试它o是一个对象并处于良好状态。
  3. AcitveInspector除非您正在寻找用户当前正在查看的内容,否则请勿使用或其办公室亲属。在这样的示例中,您应该搜索 API 以了解如何单独过滤每个电子邮件项目。
  4. 虽然我对 Outlook 的内部机制不是 100% 熟悉,但如果您已经在文件目录中找到了用户的电子邮件,那么您真的应该看看是否可以过滤它。如果它是原生格式的 MIME 解析器并不难获得,如果它是 XML,则 DOM 比 VBA 更容易。
于 2013-10-12T03:52:31.967 回答