Outlook的VBA脚本,用于在Web浏览器中自动打开来自邮件正文的URL,用于所有传入的邮件

时间:2012-10-22 12:35:41

标签: outlook outlook-vba

我是编写VBA脚本的新手。实际上,我正在尝试编写一个小的VBA脚本,该脚本将通过新收到的电子邮件,扫描邮件正文并打开所有网址(我的目标是此脚本以获取始终包含单个URL的邮件)像IE或FF或Chrome这样的网络浏览器。我尝试在SO和Google上寻找类似的Q.我在这里找到了一个:How to launch a URL when an email arrives,它是关于如何在电子邮件到达时打开URL。但它始终打开一个固定的URL,而不是通过邮件正文并从那里选择URL。另外,我发现:Using VB/VBA to search Outlook messages and extract specific data into Excel worksheet通过邮件正文来选择/搜索某些内容。在我的场景中,我想巩固两者,但我无法想出一个基本的脚本。当有新邮件到达Outlook邮箱时,有人可以给我指点整合两者并帮助我实现从邮件正文中打开URL的目标。提前谢谢。

2 个答案:

答案 0 :(得分:1)

Sub LaunchURL(itm As MailItem)

    Dim bodyString As String
    Dim bodyStringSplitLine
    Dim bodyStringSplitWord
    Dim splitLine
    Dim splitWord

    bodyString = itm.Body
    bodyStringSplitLine = Split(bodyString, vbCrLf)

    For Each splitLine In bodyStringSplitLine
        bodyStringSplitWord = Split(splitLine, " ")

        For Each splitWord In bodyStringSplitWord
            If Left(splitWord, 7) = "http://" Then
                Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & splitWord)
            End If
        Next

    Next

    Set itm = Nothing

End Sub

Private Sub test()
    Dim currItem As MailItem
    Set currItem = ActiveInspector.currentItem
    LaunchURL currItem
End Sub

答案 1 :(得分:0)

阿尔法,我的事情有点不安全,即使你的规则只是来自特定领域的人。 这是一个好主意,当您使用您创建的变量检查urlstring时(例如仅从本地Intranet链接)。

if splitWord like "my_company_internat_url" then '...