2013-06-19 31 views
1

我们公司正在使用Enterprise Vault系统存储已存档的电子邮件。 10%的时间我能够检索我的电子邮件。所以我正在开关将它们存储在我的电脑上。对所有打开的电子邮件执行操作并移至文件夹

这是我会怎么做:电子邮件

  1. 计数x号在“存档”文件夹
  2. 打开N个电子邮件项目在“存档”文件夹
  3. 副本ñ电子邮件项目
  4. 将电子邮件项目移动到“电脑”文件夹中(注意:电子邮件必须打开并移动)
  5. 关闭n电子邮件窗口
  6. 重复,直到n = x

我的电脑上有一个.pst文件夹。

有人可以帮我开发最简单的代码来完成第2步吗?

这是我迄今为止...

Sub MoveToFolder() 

Dim olApp As New Outlook.Application 
Dim olNameSpace As Outlook.NameSpace 
Dim olArcFolder As Outlook.MAPIFolder 
Dim olCompFolder As Outlook.MAPIFolder 
Dim mailboxNameString As String 
Dim myInspectors As Outlook.MailItem 
Dim myCopiedInspectors As Outlook.MailItem 
Dim x As Integer 
Dim iCount As Integer 

mailboxNameString = "Emails Stored on Computer" 
Set olNameSpace = olApp.GetNamespace("MAPI") 
Set olArcFolder = olNameSpace.Folders(mailboxNameString).Folders("Archived") 
Set olCompFolder = olNameSpace.Folders(mailboxNameString).Folders("Computer") 

'Make some kind of loop that counts the emails in the folder "Computer" 
'opens it up, and then moves it to the folder "Archived" 
Set myInspectors = Outlook.Application.ActiveInspector.CurrentItem 
Set myCopiedInspectors = myInspectors.copy 
myCopiedInspectors.Move (olCompFolder) 
'next email 
+0

在这个家伙上挣扎。我可以复制打开的电子邮件并将其放入一个文件夹中。但诀窍是为了移动完整的电子邮件,您必须打开它。这将从Vault服务器下载它。 – Jason

回答

2

好,大家好,想我自学毕竟。这适用于我想要的。

Sub MoveToFolder() 

Dim olApp As New Outlook.Application 
Dim olNameSpace As Outlook.NameSpace 
Dim olArcFolder As Outlook.MAPIFolder 
Dim olCompFolder As Outlook.MAPIFolder 
Dim mailboxNameString As String 
Dim myInspectors As Outlook.MailItem 
Dim myCopiedInspectors As Outlook.MailItem 
Dim myItem As Outlook.MailItem 
Dim M As Integer 
Dim iCount As Integer 

Set olNameSpace = olApp.GetNamespace("MAPI") 
Set olArcFolder = olNameSpace.Folders("Emails Stored on Computer").Folders("Archived") 
Set olCompFolder = olNameSpace.Folders("Emails Stored on Computer").Folders("Computer") 


For M = 1 To olArcFolder.items.Count 
    Set myItem = olArcFolder.items(M) 
    myItem.Display 
    Set myInspectors = Outlook.Application.ActiveInspector.CurrentItem 
    Set myCopiedInspectors = myInspectors.copy 
    myCopiedInspectors.Move olCompFolder 
    myInspectors.Close olDiscard 
Next M 



End Sub 
相关问题