我正在使用Excel VBA在Outlook中暂存电子邮件,并且运行良好。
Dim template As Outlook.MailItem, tomerge As Outlook.MailItem
' Create E-mail
tomerge.Close olSave
然后可以将电子邮件手动移动到“草稿”文件夹和sent using this Sub。
'Loop through items in Drafts folder
objDrafts.Item(i).Send
但是,许多用户在“草稿”文件夹中有一堆不想发送的多余草稿。
如果我将“ olFolderDrafts”替换为“ olFolderOutbox”,并尝试从其发件箱发送邮件。发送第一个消息,然后出现“运行时错误”“ Outlook已经开始发送此消息”。
是否有某种方式可以从发件箱发送所有内容,或者有更好的方式来登台并从新创建的文件夹发送信息?
答案 0 :(得分:0)
您需要为未发送的项目创建一个文件夹,并分别进行处理。通常,Outbox
文件夹包含已提交的项目。因此,这不是您放置物品的合适位置。
Outlook对象模型提供了Folders
类的Add函数。您可以使用Outlook中Folders
类的Folders
属性获得Folder
类的实例。您可以在How To: Create a new folder in Outlook文章中了解有关此内容的更多信息。
答案 1 :(得分:0)
此答案的灵感来自于Nagarajan的上述评论,但是与Send/Receive in Outlook Via Code中的答案相比,有很多必要的更改。主要问题是使用olSave
不会在Outlook中将邮件置于“准备发送”状态,因此,从以上答案中使用syc.Start
开始同步将无济于事。
相反,我们发现以下过程很简单:
.Send
每封电子邮件。由于Outlook处于脱机状态,因此它们将被暂存并准备发送,但实际上并未发送。