如何在Outlook未运行时用Redemption创建邮件并打开新邮件对话框?
在Outlook未运行时用Redemption创建并打开新邮件对话框的方法
可以在Outlook未运行的情况下实现需求,并非只能通过临时.msg文件启动进程,有两种可行方案:
方案一:临时.msg文件启动(你当前的思路)
这种方式不需要提前启动Outlook后台进程,先创建.msg文件再通过系统进程打开,会自动唤起Outlook并显示新邮件窗口。你已有的创建代码可以补充后续打开逻辑:
Dim Session As RDOSession = RedemptionLoader.new_RDOSession Dim Msg = Session.GetMessageFromMsgFile(strPath & strFilename, True) Msg.MessageClass = "IPM.Note" ' 补充邮件内容(主题、收件人等) Msg.Subject = "测试邮件" Msg.To = "test@example.com" Msg.Save() ' 启动进程打开.msg文件 Process.Start(strPath & strFilename)
方案二:直接通过Redemption唤起Outlook并显示对话框
这种方式更直接,通过Redemption的MAPI会话登录触发Outlook后台启动,然后直接调用邮件对象的Display方法弹出编辑窗口,无需生成临时文件:
Dim Session As RDOSession = RedemptionLoader.new_RDOSession ' 登录MAPI会话,若Outlook未运行会自动启动后台进程 Session.Logon() ' 在默认发件箱创建新邮件 Dim Msg = Session.GetDefaultFolder(rdoDefaultFolders.olFolderDrafts).Items.Add("IPM.Note") ' 设置邮件属性 Msg.Subject = "直接创建的测试邮件" Msg.To = "test@example.com" ' 弹出Outlook新邮件编辑对话框,True表示模态窗口 Msg.Display(True) ' 可选:用完后注销会话(若不需要保持Outlook运行) ' Session.Logoff()
两种方案对比
- 方案一:适合不需要与Outlook其他功能交互的场景,关闭邮件窗口后Outlook会自动退出,不会在后台留下进程。
- 方案二:更贴合Outlook原生工作流,可后续对邮件进行更多自动化操作,Outlook会保持运行状态。
内容的提问来源于stack exchange,提问作者Tom Gibson
相关产品推荐
相关产品推荐

