是否可以基于正则表达式字符串在Outlook 2007中创建规则?
我想添加过滤器包含一个字符串,如消息:4000-10,四位数字后加破折号后两位数,这可以从任何东西0000-00到9999-99.
我正在使用它作为正则表达式:\b[0-9]{4}\-[0-9]{2}\b但过滤器不起作用.我也尝试过其他一些修改但没有运气.我无法在网上找到关于Outlook是否支持将正则表达式纳入规则的具体内容,所以我想我会问这里以防万一我浪费时间.
编辑:感谢Chris在下面的评论,我能够通过宏实现这个过滤器.我想我会在下面分享我的代码,以防它能够帮助其他人:
Sub JobNumberFilter(Message As Outlook.MailItem)
Dim MatchesSubject, MatchesBody
Dim RegEx As New RegExp
'e.g. 1000-10'
RegEx.Pattern = "([0-9]{4}-[0-9]{2})"
'Check for pattern in subject and body'
If (RegEx.Test(Message.Subject) Or RegEx.Test(Message.Body)) Then
Set MatchesSubject = RegEx.Execute(Message.Subject)
Set MatchesBody = RegEx.Execute(Message.Body)
If Not (MatchesSubject Is Nothing And MatchesBody Is Nothing) Then
'Assign "Job Number" category'
Message.Categories = "Job Number"
Message.Save
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在Access中编写一个VBA脚本,用于创建和自动填充几十封电子邮件.到目前为止,它一直是流畅的编码,但我是Outlook的新手.创建mailitem对象后,如何将默认签名添加到电子邮件中?
这将是创建新电子邮件时自动添加的默认签名.
理想情况下,我想使用ObjMail.GetDefaultSignature,但我找不到类似的东西.
目前,我正在使用下面的功能(在互联网上的其他地方找到)并引用htm文件的确切路径和文件名.但是这将由几个人使用,他们的默认htm签名文件可能有不同的名称.所以这可行,但它并不理想:
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Run Code Online (Sandbox Code Playgroud)
(称为getboiler(SigString = "C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Signatures\Mysig.txt"))
感谢JP(参见评论),我意识到默认签名首先出现,但是当我使用HTMLBody向电子邮件添加表格时它会消失.所以我想我现在的问题是:如何显示默认签名并仍显示html表?
Sub X()
Dim OlApp As Outlook.Application
Dim ObjMail As Outlook.MailItem
Set OlApp = Outlook.Application
Set ObjMail = OlApp.CreateItem(olMailItem)
ObjMail.BodyFormat = olFormatHTML
ObjMail.Subject = "Subject goes here"
ObjMail.Recipients.Add …Run Code Online (Sandbox Code Playgroud) 我正在编写一个宏,它根据从Nagios服务器收到的警报作为电子邮件在数据库上创建票证.但是,我不能让宏在检查邮件时在无限循环中运行,因为它太资源太重而使我的桌面挂起.我需要找到一种方法只在收到新邮件时触发宏.
我在MSDN网站上查找了NewMail事件的内容,但我找不到任何连贯的内容.任何人都可以向我展示一些示例代码,以显示如何从新邮件事件中触发宏吗?
我正在尝试在Outlook中获取一个VBA宏,它将保存电子邮件对特定文件夹的附件,并将收到的日期添加到文件名中.
我的谷歌搜索让我这么远:
Public Sub saveAttachtoDisk (itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat As String
saveFolder = "C:\Temp\"
dateFormat = Format(Now, "yyyy-mm-dd H-mm")
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Set objAtt = Nothing
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
第一个显而易见的事情是它将当前时间应用于文件名而不是接收时间,但我似乎无法改变它.我的理论是Outlook.Attachment没有ReceivedTime,并且必须引用电子邮件本身.
其次,这似乎根本不起作用,哈!它开始修补的第一天工作,但之后它停止保存文件.
我想每半小时在outlook(VBA)中运行一个特定的代码.
当代码运行时,outlook用户也不会受到干扰.它应该只在后端运行.
有一个叫做的事件Application_Reminder.它在outlook中每次出现提醒时运行.但这仍然涉及用户互动.我想要一个完整的后端程序.
我在Outlook 2003 VBA中创建了一个脚本,用于监视新约会,并在创建它们时将它们设置为暂定且没有提醒.我发现看似随机,VBA编辑器将自行打开.当我使用新脚本时不会发生这种情况,但是今天早上当我取消我的笔记本电脑休眠时它确实发生了.
编辑器不会弹出任何运行时错误或突出显示脚本中的任何行,它就像我按下Alt-F11启动它一样.有时我关闭其他应用程序,看到它已经在那里坐了一会儿.
自从我创建此新脚本以来,才发生此行为.有什么想法会发生这种情况吗?
我在Outlook中有一个带有几个电子邮件宏的VBA项目 - 但是在PC崩溃后它们都消失了,当我点击Alt + F11时,我看到的只是一个新的'Project1'
我不是VBA程序员,但有一组方便的宏用于电子邮件排序等.我不想再次编码它们.任何人都知道代码文件应该在文件系统上的哪个位置,以便我可以挽救代码?
我正在使用Outlook 2007 - 并拥有我的主邮箱:Tait,Mark
我还在我的个人资料中添加了另一个邮箱:采购,请求
两者都显示为Outlook中的顶级文件夹:
邮箱 - Tait,Mark> - 会话历史 - 删除
项目
--Drafts
-Inbox
-Junk电子邮件邮箱 - 采购,请求 -
会话历史
- 删除项目
--Drafts
--Inbox -
垃圾邮件
我可以使用以下命令获取对我的默认收件箱(Tait,Mark)的引用:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
如何在"采购,请求"邮箱中获取对收件箱的引用?
在VBA中,有一种简短的方法可以像java一样注释掉一段代码/*...*/吗?
我是VBA和Macros的新手.如果有人帮助我使用VBA代码和宏,它将会很有帮助.
每天我会收到大约50-60封邮件,其中包含一个标准主题:"任务已完成".我已经为所有这些邮件创建了一个规则,以移动到特定文件夹:"任务已完成".
每天阅读所有50-60封邮件并更新所有邮件非常耗时.收到我收件箱的所有50-60封邮件都有相同的主题,但来自不同的用户.邮件的内容会有所不同.
我正在使用Outlook 2010和Excel 2010.

outlook-vba ×10
vba ×10
outlook ×7
access-vba ×2
attachment ×1
excel ×1
excel-vba ×1
ms-office ×1
outlook-2007 ×1
regex ×1
triggers ×1
vbe ×1
vbscript ×1
word-vba ×1