将附件数据从Outlook移动到数据库

时间:2014-04-17 13:04:04

标签: sql-server vba outlook email-attachments

我回来了另一个有趣的挑战。

流程:

  1. 我每天收到一封带附件的电子邮件(大小约1MB)。我将所有电子邮件通过outlook规则发送到同一目录。
  2. 分离附件并处理为其指定特定名称的文件
  3. 将all组合成一个大文件
  4. 将文件加载到数据库表中
  5. 当前工具

    • Outlook宏以分离附件
    • cygwin做一些文件处理
    • 访问分段数据
    • SQL导入将数据从Access移动到SSIS
    • 笔记本电脑的内存为24MB,因此在内存中进行操作不是问题。

    期望流程

    • VBA宏分离附件,处理文件,通过消除cygwin和访问权限将文件加载到数据库中。
    • 或其他一些单击选项。哎呀,vbs也可能有用,但我以前还没用过那种语言。也许是powershell(另一个我还没用过)?

    文字处理

    • 每个文件都有一个总是3行的标题,所以我需要删除它们
    • 有时第4行有坏数据,我只需要跳过它
      • 好行:xxxx | xxxx | xxxx | 3000 | xxxx | xxxx |
      • 坏行:xxxx | xxxx | xxxx | 7000 | xxxx | xxxx |
      • 如果3000值大于6000,我想跳过它
    到目前为止,我所拥有的是一个宏,它将分离附件并按我的意愿命名。虽然我不是在寻找代码中的答案,但我自己也是为了对它进行教育而写的,我不知道解决方案需要什么工具或从哪里开始寻找。我在考虑以下两种方式之一:

    • 通过Outlook宏执行此操作

    • 使用SSIS包,但我不知道包是否可以访问我的收件箱。

    非常感谢您提出的任何想法/建议

    迈克尔。

    ------------更新1 -------------

    试图将其排除在外。由于我有附件代码,我试图在保存后打开文件。我可以进行处理然后将其附加到另一个文件。我似乎无法弄清楚如何直接从电子邮件中打开附件。我必须先保存吗?我正在尝试这个,但得到类型不匹配

    FileName = "C:\Users\xxxxxxx\Desktop\OSTAT_import\" & Format(DateAdd("d", -1, Item.ReceivedTime), "yyyymmdd") + "_OSTATLOG_RAW.TXT"
    
    Open FileName For Append As lFile
        Print #lFile, "first line of text"
    Close lFile
    

    错误号码:13 错误说明:类型不匹配

1 个答案:

答案 0 :(得分:0)

哈!得到了一个好...我困扰了专家;)。我要把它关闭了。我认为,因为我有代码来strop附件,我可能只是使用SSIS包来预先处理文件并加载它们。这可能是最简单的方法。干杯。

为了记录,我打开了文件并且能够写一个文件但是从来没有能够得到我想要的处理。我认为我可以想出来,但有时采取不同的路线比坚持单一方法更好。