使用.SaveAs将电子邮件草稿保存为.msg格式

时间:2018-12-19 15:21:35

标签: excel vba outlook outlook-vba

我正在使用VBA代码在Outlook中用PowerPoint文件中的信息编写电子邮件,并将其另存为草稿,格式为“ .msg”。

With OutMail                    
    .To = name_email                                     
    'Add file likethis                    
    .Attachments.Add ("C:... " & numb_slide & ".pptx")                    
    .Subject = "... " & date_c & " | Open Tasks " & name_project & " | Feedback ... " & dead_line_date & ",..."                    
    .Body = StrBody                                    
    '.SaveAs "C:... " & CStr(date_c) & " | ... " & CStr(name_project) & ".msg", 5                    
    .SaveAs "C:..." & numb_slide & ".msg", 5                    
    '.Display Or use .Send                
End With

我有两个问题:

1)当我使用以下方法保存文件时:

.SaveAs "C:..." & numb_slide & ".msg", 5

程序没有给我一个错误,但是我无法打开保存的草稿,错误状态为:error when trying to open the draft

如果我创建普通电子邮件并将其另存为草稿,则可以稍后打开。

2),如果我更改了保存文件的方式,例如:

.SaveAs "C:... " & CStr(date_c) & " | ... " & CStr(name_project) & ".msg", 5 

.SaveAs "C:... " & date_c & " | Open Tasks " & name_project & ".msg", 5 

在完成任务之前,它给我以下错误:

enter image description here

我在名称中写的变量是字符串,但我也尝试使用CStr()来写它们,以检查它是否有区别,并且没有!

1 个答案:

答案 0 :(得分:1)

我认为您希望使用3而不是5

通过olSaveAsType枚举:

  • 3对应于 Outlook邮件格式(.msg)
  • 5对应于 HTML格式(.html)

或者,您可以删除文件类型。从MailItem.SaveAs文档中,

  

如果未指定文件类型,则使用MSG格式(.msg)。