如何在 Outlook 2016 中使用 VB 下载超链接中的 PDF

罗杰·里瓦斯

我正在寻找一些帮助来自动执行我每天执行多次的任务。我收到来自某个地址的电子邮件,我自动将其分类(使用规则)到一个专用文件夹中。

这些电子邮件具有指向不同文档的超链接,可以从网络上下载;但是链接不是写成 URL,而是有一个链接说“打开文档”。

我单击此链接,它会打开 PDF,然后PDF在将其上传到文档库之前将此文件保存在桌面上

我正在寻找自动化这个过程。手动执行此操作是一项繁琐的任务,因为我收到了太多电子邮件,将每个电子邮件分别下载到我机器上的一个文件夹中,然后将它们上传到我的文档库需要很长时间。

我没有太多的编程经验,VBA但我愿意学习。

有人可以帮助我吗?

EJD

从启用OutLook 中Developer Tab开始

那么如何在OutLook中创建宏

将下面的代码复制到一个新的模块中。

最后,编辑您的规则以移动电子邮件并添加另一个步骤来运行脚本。单击您的新模块应显示的规则。

完毕。

Sub SavePDFLinkAction(item As Outlook.MailItem)

    Dim subject As String
    Dim linkName As String

    '*******************************
    ' Intitial setup
    '*******************************
    subject = "Criteria" ' Subject of the email
    linkName = "Open the document" ' link name in the email body
    '*******************************

    Dim link As String

    link = ParseTextLinePair(item.body, "HYPERLINK")
    link = Replace(link, linkName, "")
    link = Replace(link, """", "")
    'Download the file - Intitial settings need to be set
    DownloadFile (link)

End Sub

Sub DownloadFile(myURL As String)

    Dim saveDirectoryPath As String

    '*******************************
    ' Intitial setup
    '*******************************
    saveDirectoryPath = "C:\temp\" 'where your files will be stored
    '*******************************

    Dim fileNameArray() As String
    Dim fileName As String
    Dim arrayLength As Integer
    Dim DateString As String
    DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")

    fileNameArray = Split(myURL, "/")
    arrayLength = UBound(fileNameArray)
    fileName = fileNameArray(arrayLength)

    'Add date to the file incase there are duplicates comment out these lines if you do not want the date added
    fileName = Replace(fileName, ".pdf", "_" & DateString & ".pdf")
    fileName = Replace(fileName, ".PDF", "_" & DateString & ".PDF")

    Dim WinHttpReq As Object
    Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
    WinHttpReq.Open "GET", myURL, False, "username", "password"
    WinHttpReq.Send

    myURL = WinHttpReq.responseBody
    If WinHttpReq.Status = 200 Then
        Set oStream = CreateObject("ADODB.Stream")
        oStream.Open
        oStream.Type = 1
        oStream.Write WinHttpReq.responseBody
        oStream.SaveToFile saveDirectoryPath & fileName, 2 ' 1 = no overwrite, 2 = overwrite
        oStream.Close
    End If

End Sub

Function ParseTextLinePair(strSource As String, strLabel As String)
    Dim intLocLabel As Integer
    Dim intLocCRLF As Integer
    Dim intLenLabel As Integer
    Dim strText As String

    intLocLabel = InStr(strSource, strLabel)
    intLenLabel = Len(strLabel)
    If intLocLabel > 0 Then
        intLocCRLF = InStr(intLocLabel, strSource, vbCrLf)
        If intLocCRLF > 0 Then
            intLocLabel = intLocLabel + intLenLabel
            strText = Mid(strSource, _
                            intLocLabel, _
                            intLocCRLF - intLocLabel)
        Else
            intLocLabel = Mid(strSource, intLocLabel + intLenLabel)
        End If
    End If
    ParseTextLinePair = Trim(strText)
End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Mac版Outlook 2016中使用HTML签名

来自分类Dev

如何使用pdfbox在pdf中添加超链接

来自分类Dev

我如何使用php从pdf中读取超链接?

来自分类Dev

如何在OneNote 2016中禁用超链接安全通知?

来自分类Dev

如何在 Word 2016 中超链接文档属性字段?

来自分类Dev

如何在Outlook 2016中设置默认模板

来自分类Dev

如何在Outlook 2016 / Outlook 365中删除大量电子邮件

来自分类Dev

C# VSTO Outlook 2016:修改嵌入在图像中的超链接

来自分类Dev

如何通过中间件 (C#) 将查询结果 (SQL Server 2016) 作为超链接 (Microsoft Outlook) 发送

来自分类Dev

如何使用Python从Excel导出中的超链接下载文件

来自分类Dev

如何使用 iTextSharp VB.net 在 PDF 中添加页脚?

来自分类Dev

如何在Outlook 2016+中的电子邮件中插入HTML(包括图像)

来自分类Dev

如何在Outlook 2016中查看电子邮件的HTML源

来自分类Dev

如何在Outlook 2016中访问自定义后续标记值(“标记为...”)?

来自分类Dev

如何在Outlook 2016 c#中获取用户联系人列表?

来自分类Dev

如何在Outlook 2016中手动配置IMAP和SMTP服务器

来自分类Dev

如何在JsonStore for Extjs 3.4中链接pdf下载

来自分类Dev

如何自动删除Outlook 2016中的旧电子邮件?

来自分类Dev

如何在Outlook 2010中用超链接替换传入邮件正文中的文本?

来自分类Dev

添加超链接将冻结Outlook 2016(Microsoft Office Professional Plus 2016)

来自分类Dev

如何在Mac的Excel 2016中使用公式将长单列拆分为多列?

来自分类Dev

如何下载PDF中的所有链接

来自分类Dev

如何在Java中使用swing在jeditorpane中的超链接上添加on悬停效果

来自分类Dev

我如何在Java中使用swing在jeditorpane中的超链接上添加on悬停效果

来自分类Dev

如何使用VB从Windows窗体应用程序在Outlook中创建文件夹

来自分类Dev

使用 itext 4 编辑 pdf 中的现有超链接

来自分类Dev

如何在Linux中使用另一个pdf替换pdf中的单个页面?

来自分类Dev

如何在PyQtWebEngine中使用target =“ _ blank”打开超链接?

来自分类Dev

如何在VB.NET的Outlook Mail中包括投票按钮

Related 相关文章

  1. 1

    在Mac版Outlook 2016中使用HTML签名

  2. 2

    如何使用pdfbox在pdf中添加超链接

  3. 3

    我如何使用php从pdf中读取超链接?

  4. 4

    如何在OneNote 2016中禁用超链接安全通知?

  5. 5

    如何在 Word 2016 中超链接文档属性字段?

  6. 6

    如何在Outlook 2016中设置默认模板

  7. 7

    如何在Outlook 2016 / Outlook 365中删除大量电子邮件

  8. 8

    C# VSTO Outlook 2016:修改嵌入在图像中的超链接

  9. 9

    如何通过中间件 (C#) 将查询结果 (SQL Server 2016) 作为超链接 (Microsoft Outlook) 发送

  10. 10

    如何使用Python从Excel导出中的超链接下载文件

  11. 11

    如何使用 iTextSharp VB.net 在 PDF 中添加页脚?

  12. 12

    如何在Outlook 2016+中的电子邮件中插入HTML(包括图像)

  13. 13

    如何在Outlook 2016中查看电子邮件的HTML源

  14. 14

    如何在Outlook 2016中访问自定义后续标记值(“标记为...”)?

  15. 15

    如何在Outlook 2016 c#中获取用户联系人列表?

  16. 16

    如何在Outlook 2016中手动配置IMAP和SMTP服务器

  17. 17

    如何在JsonStore for Extjs 3.4中链接pdf下载

  18. 18

    如何自动删除Outlook 2016中的旧电子邮件?

  19. 19

    如何在Outlook 2010中用超链接替换传入邮件正文中的文本?

  20. 20

    添加超链接将冻结Outlook 2016(Microsoft Office Professional Plus 2016)

  21. 21

    如何在Mac的Excel 2016中使用公式将长单列拆分为多列?

  22. 22

    如何下载PDF中的所有链接

  23. 23

    如何在Java中使用swing在jeditorpane中的超链接上添加on悬停效果

  24. 24

    我如何在Java中使用swing在jeditorpane中的超链接上添加on悬停效果

  25. 25

    如何使用VB从Windows窗体应用程序在Outlook中创建文件夹

  26. 26

    使用 itext 4 编辑 pdf 中的现有超链接

  27. 27

    如何在Linux中使用另一个pdf替换pdf中的单个页面?

  28. 28

    如何在PyQtWebEngine中使用target =“ _ blank”打开超链接?

  29. 29

    如何在VB.NET的Outlook Mail中包括投票按钮

热门标签

归档