我是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
答案 0 :(得分:0)
如果您要将现有会议项目作为常规电子邮件发送,则需要先将MessageClass属性设置为IPM.Note
。 MessageClass
属性将项目链接到它所基于的表单。选择项目时,Outlook使用消息类来查找表单并公开其属性,例如Reply
命令。然后,您可以将对象强制转换为MailItem
类并调用Send方法(当然,在指定收件人之后)。
在另一侧,MeetingItem
类的Forward方法对项执行Forward
操作,并将结果副本作为MeetingItem对象返回。因此,基本上会返回一个代表新会议项目的新MeetingItem
对象,可以发送该对象。