首页 > 解决方案 > 如何发送在文件夹中存储为 *.msg 的所有 Outlook 邮件项目

问题描述

我有一个程序可以创建多封电子邮件并将它们保存在共享驱动器上的文件夹中,该文件夹映射为“Y:”作为 .msg 文件。每封邮件都有不同的收件人、主题和邮件正文。

为了使用我的 Outlook 发送这些消息,我编写了这段代码,但它生成了一个错误“Object Required 424”,并且调试器突出显示了“Set MySource = . . . .”行。任何建议请

Sub SendMSGs()

    Dim MyItem As Outlook.MailItem, MySource As Object, file As Variant
    Set MySource = MyObject.GetFolder("Y:\UI_messages\")
    For Each file In MySource.Files
        Set MyItem = file.Name.msg
        MyItem.Send
    Next file

End Sub

标签: vbaoutlook

解决方案


我没有测试过这段代码,甚至没有尝试编译它。它修复了代码中最明显的错误,因此至少你会得到更好的错误类别。

将文件名转换为邮件项的技术来自:https ://stackoverflow.com/a/19426859/973283 。

此代码需要引用“Microsoft Scripting Runtime”。没有这个 ,FileFolderFileSystemObject未知类型。

Sub SendMSGs()

  Dim FileCrnt As File
  dim FldrCrnt As Folder
  Dim Fso As FileSystemObject
  Dim ItemCrnt As MailItem
  Dim Path As String

  Path = "Y:\UI_messages\"

  Set Fso = CreateObject("Scripting.FileSystemObject")
  Set FldrCrnt = Fso.GetFolder(Path)

  For Each FileCrnt In FldrCrnt.Files
    If LCase(Right$(FileCrnt.Name, 4)) = ".msg" Then 
      Set ItemCrnt = Application.CreateItemFromTemplate(Path & FileCrnt.Name)
      ItemCrnt.Send
    End If
  Next FileCrnt

End Sub

推荐阅读