Я хочу автоматизировать онлайн-заказы, которые я получаю.
Аналогично этому вопросу: Как загрузить PDF-файл с гиперссылкой с помощью VB в Outlook 2016
Электронные письма сортируются по адресу в выделенную папку с использованием правила.
Эти электронные письма имеют гиперссылки на файлы, которые нужно загрузить из Интернета и поместить в каталог на сервере в папке с номером заказа.
Ссылки не записываются в виде URL, они генерируются как номер заказа, за которым следуют -1.pdf, -2.pdf ... и т. Д., В зависимости от количества файлов в заказе.
Например:
Тема: Заказ L12345 компанией
Корпус:
L12345-1.pdf
L12345-2.pdf
L12345-3.pdf ...
Мой код пока:
Sub SavePDFLinkAction(item As Outlook.MailItem)
Dim subject As String
Dim linkName As String
'*******************************
' Intitial setup
'*******************************
subject = "Order variable order# by company" ' Subject of the email
linkName = "variable order#-document#.pdf" ' 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 = "G:\Print\__WEB TO PRINT\Company Name" 'where your files will be stored
'*******************************
Dim fileNameArray() As String
Dim fileName As String
Dim arrayLength As Integer
fileNameArray = Split(myURL, "/")
arrayLength = UBound(fileNameArray)
fileName = fileNameArray(arrayLength)
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
Я не знаю, как передать номер заказа от субъекта, чтобы затем получить ссылки. Это также та же проблема, что и у меня для передачи номера заказа, чтобы создать новую папку с именем номера заказа.
Формат строки темы: Заказ L12345 по названию компании.
Можно ли как-нибудь извлечь номер заказа из темы и использовать его для поиска файлов PDF и создания папки каталога