将约会转换为普通电子邮件并发送

时间:2018-05-07 14:26:17

标签: vba outlook-vba

我是VBA编程的新手。 我试图将传入的约会消息转换为普通电子邮件并将其发送到另一封电子邮件。搜索后我创建了以下但它不起作用:

Public Sub ConvertMeetingToEmail(ActiveFolder, Inbox As String)

    Dim myNamespace As Outlook.NameSpace
    Dim myFolder As Outlook.Folder
    Dim Subfolder As Outlook.Folder

    Dim Item As Object
    Dim myMtg As Outlook.MeetingItem

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    Set myNamespace = Application.GetNamespace("MAPI")
    Set myFolder = myNamespace.Folders(ActiveFolder)
    Set Folders = myFolder.Folders
    Set Subfolder = Folders.Item(Inbox)

    For Each Item In Subfolder.Items

        If Item.MessageClass = "IPM.Schedule.Meeting.Request" Then
            'Convert Appointment to Email and Forward message
            'Its Sudo-code and not working
            objMsg.To = "example@emp.com"
            objMsg.Subject = Item.Subject
            objMsg.Body = Item.Body
            objMsg.Send
        End If

    Next

End Sub

此宏将在MS-Outlook中执行。

从约会和主题复制现有正文文本并发送到另一个电子邮件非常重要。

我不会转发此预约我必须将其转换为普通电子邮件。

更新

我只添加了一行代码及其作品:

Set myMtg = Item

objMsg.To = "example@emp.com"
objMsg.Subject = myMtg.Subject
objMsg.Body = myMtg.Body
objMsg.Send

1 个答案:

答案 0 :(得分:0)

如果您要将现有会议项目作为常规电子邮件发送,则需要先将MessageClass属性设置为IPM.NoteMessageClass属性将项目链接到它所基于的表单。选择项目时,Outlook使用消息类来查找表单并公开其属性,例如Reply命令。然后,您可以将对象强制转换为MailItem类并调用Send方法(当然,在指定收件人之后)。

在另一侧,MeetingItem类的Forward方法对项执行Forward操作,并将结果副本作为MeetingItem对象返回。因此,基本上会返回一个代表新会议项目的新MeetingItem对象,可以发送该对象。