- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编辑了一个我在网上找到的脚本,将电子邮件移动到各个文件夹。
我想更进一步,将电子邮件移动到单独的 PST 文件中的文件夹。
这将在 Outlook 2007 中运行。
宏源于这个名为“更新”的宏,是更清晰的版本:
http://jmerrell.com/2011/05/21/outlook-macros-move-email
我几乎可以肯定这个链接包含线索,但我没有正确应用它的经验:
http://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/
我当前的宏允许将电子邮件移动到主 PST“收件箱”文件夹中的 3 个不同文件夹位置。
'Outlook VB Macro to move selected mail item(s) to a target folder
Sub MoveToFolder(targetFolder)
On Error Resume Next
Dim ns As Outlook.NameSpace
Dim MoveToFolder As Outlook.MAPIFolder
Dim objItem As Outlook.MailItem
Set ns = Application.GetNamespace("MAPI")
'define path to the target folder; the following assumes the target folder
'is a sub-folder of the main Mailbox folder
'This is the original'
'Set MoveToFolder = ns.Folders("Mailbox").Folders(targetFolder)'
Set MoveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders(targetFolder)
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox ("No item selected")
Exit Sub
End If
If MoveToFolder Is Nothing Then
MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error"
End If
For Each objItem In Application.ActiveExplorer.Selection
If MoveToFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail Then
objItem.Move MoveToFolder
End If
End If
Next
Set objItem = Nothing
Set MoveToFolder = Nothing
Set ns = Nothing
End Sub
Sub MoveToActive()
MoveToFolder ("Active")
End Sub
Sub MoveToAction()
MoveToFolder ("Action")
End Sub
Sub MoveToOnHold()
MoveToFolder ("OnHold")
End Sub
Sub MoveToArchive()
MoveToFolder ("Archive")
End Sub
最佳答案
这是一个老问题,但这里有一个对我有用的解决方案,从几个来源修改代码。您可以根据您的要求对其进行修改。
这允许用户选择任何文件夹,无论是在默认位置下,还是在另一个存档或 PST 文件中。如果用户在文件夹选择器中选择取消,则电子邮件将保存到默认的已发送邮件文件夹。
Private Sub Application_ItemSend(ByVal Item As Object, _
Cancel As Boolean)
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
On Error Resume Next
Set objNS = Application.Session
If Item.Class = olMail Then
Set objFolder = objNS.PickFolder
'save to a folder under the default structure, main PST/archive
If Not objFolder Is Nothing And IsInDefaultStore(objFolder) And objFolder.DefaultItemType = olMailItem Then
Set Item.SaveSentMessageFolder = objFolder
'save to a non-default, different PST/archive
ElseIf Not IsInDefaultStore(objFolder) Then
Set objFolder = GetFolderFromPath(objFolder.FolderPath)
Set Item.SaveSentMessageFolder = objFolder
'neither, just save to default sent items folder
Else
Set objFolder = objNS.GetDefaultFolder(olFolderSentMail)
Set Item.SaveSentMessageFolder = objFolder
End If
End If
Set objFolder = Nothing
Set objNS = Nothing
End Sub
Public Function IsInDefaultStore(objOL As Object) As Boolean
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objInbox As Outlook.MAPIFolder
Dim blnBadObject As Boolean
On Error Resume Next
Set objApp = objOL.Application
If Err = 0 Then
Set objNS = objApp.Session
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Select Case objOL.Class
Case olFolder
If objOL.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
Else
IsInDefaultStore = False
End If
Case olAppointment, olContact, olDistributionList, _
olJournal, olMail, olNote, olPost, olTask
If objOL.Parent.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
Else
IsInDefaultStore = False
End If
Case Else
blnBadObject = True
End Select
Else
blnBadObject = True
End If
If blnBadObject Then
'if cancel is selected then just leave in sent items, so do nothing.
' MsgBox "This function isn't designed to work " & _
' "with " & TypeName(objOL) & _
' " objects and will return False.", _
' , "IsInDefaultStore"
IsInDefaultStore = False
End If
Set objApp = Nothing
Set objNS = Nothing
Set objInbox = Nothing
End Function
'modified from https://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/
Function GetFolderFromPath(ByVal FolderPath As String) As Outlook.Folder
Dim oFolder As Outlook.Folder
Dim FoldersArray As Variant
Dim i As Integer
On Error GoTo GetFolderPath_Error
If Left(FolderPath, 2) = "\\" Then
FolderPath = Right(FolderPath, Len(FolderPath) - 2)
End If
'Convert folderpath to array
FoldersArray = Split(FolderPath, "\")
Set oFolder = Application.Session.Folders.Item(FoldersArray(0))
If Not oFolder Is Nothing Then
For i = 1 To UBound(FoldersArray, 1)
Dim SubFolders As Outlook.Folders
Set SubFolders = oFolder.Folders
Set oFolder = SubFolders.Item(FoldersArray(i))
If oFolder Is Nothing Then
Set GetFolderFromPath = Nothing
End If
Next
End If
'Return the oFolder
Set GetFolderFromPath = oFolder
Exit Function
GetFolderPath_Error:
Set GetFolderPath = Nothing
Exit Function
End Function
关于vba - 将电子邮件移动到不同的数据/PST 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720744/
正在计算每月的最后一个工作日,合并如下 - • AI.VOUCHER_DT >= 本月最后一个工作日下午 5:00(太平洋标准时间) • AI.VOUCHER_DT <= 本月最后一个日历日太平洋标准
我想使用 C# 访问我的 Outlook 已发送文件夹,并将那里的邮件移动到我的 PST 中名为 Archive 的文件夹中。这是我正在使用的代码,但出现多个编译错误。这里有更多编码经验的人知道如何完
我正在使用 PST File Format SDK尝试从 Outlook PST 导出中提取一些约会项目数据: int main() { pst myfile(L"export.pst");
这个问题已经有答案了: How to initialize a JavaScript Date to a particular time zone (21 个回答) Convert Javascrip
我们正在研究处理 PST 的东西,所以我们正在尝试使用 java-libpst 创建示例代码。它对我来说工作正常,但我们需要显示 PST 的详细信息,例如 PST 名称、给定 PST 上配置的电子邮件
我找不到完全用 Excel VBA 操作的代码来指向一个不是 Outlook 中默认收件箱的收件箱。 想象一下第二个收件箱,其中有一个用于特殊电子邮件的备用电子邮件地址。 看来Set Inbox =
它最终达到了我不得不寻求帮助的地步。 由于电子邮件服务器的空间限制,我们公司的常见做法是将邮件/日历等从 Outlook 备份到 PST 文件。 我们现在在电子邮件服务器上不再有阻止这种情况的空间限制
我想要当前的日期和时间(太平洋标准时间)。我使用了这段代码 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [date
我编辑了一个我在网上找到的脚本,将电子邮件移动到各个文件夹。 我想更进一步,将电子邮件移动到单独的 PST 文件中的文件夹。 这将在 Outlook 2007 中运行。 宏源于这个名为“更新”的宏,是
在我的一个模块中,我必须实现以下目标。 我从服务器获取 yyyy-MM-dd'T'HH:mm:ss'Z' 格式的日期。我必须转换此日期和 PST 中的当前日期,然后以小时/分钟/秒为单位显示这两者之间
我正在尝试提取 .pst 文件的内容(作为字符串/文本)。 我尝试了不同的答案,但没有找到任何相关的解决方案。 Outlook PST File Parsing in Python Read PST
在我们的应用程序服务器中,以这样的格式提供日期时间字符串“2013-01-14 T 06:33 PST” 和 “2013-01-14 T 06:33 PDT” 或 “2013-01-14 T 06:3
我需要获取从现在到“America/Los_Angeles”(太平洋标准时间)午夜之间的毫秒数。 midnightAtPST = ???; long millis = ChronoUnit.MILLI
玩弄 Calendar 和 TimeZone 我遇到了以下奇怪的行为。 Calendar pstCal = Calendar.getInstance(TimeZone.getTimeZone("PST
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭
我正在研究 javascript。我有时间以毫秒为单位。所以我必须显示 PST 时区的时间。我试过格林威治标准时间。但是是否有任何选项以 PST 格式显示时间,其中输入以毫秒为单位,如 1671673
我正在使用 java libpst 和 tika 从 pst 文件中提取元数据,我使用了以下代码: int numberOfAttachments = email.getNumberOfAtt
我正在使用java-libpst查看其中有哪些电子邮件和电子邮件附件。现在,请建议一种将所有或选定的电子邮件以及电子邮件附件从 PST 文件提取到本地文件夹的方法。 最佳答案 该库似乎没有尝试将 PS
有没有一种方法可以使用 C# 检查 Microsoft Outlook pst 文件是否受密码保护。我正在尝试使用以下代码读取 pst 文件。 Microsoft.Office.Interop.Out
有没有办法通过 API 调用或注册表项以编程方式查找当前用户的 Outlook .pst 文件的位置? 最佳答案 与 Outlook Redemption ,您可以使用 RDOStores 迭代 VB
我是一名优秀的程序员,十分优秀!