簡體   English   中英

VBA Outlook 附件發布到 URL

[英]VBA Outlook attachments post to URL

我為 Outlook 創建了一個宏,它打開一個用戶表單,詢問幾個問題以供選擇,然后有一個提交按鈕將消息和用戶表單數據發送到 POST url(我們的票務系統)。 我被困在附件的最后一部分。 我可以看到附件列表並循環訪問附件項目對象,但我不知道要調用哪個對象才能將實際文件數據發送到 POST 表單……我只能看到文件大小、文件名等.

有什么想法可以獲取文件內容和 mime 類型以將它們作為表單變量添加到 URL 發布操作中嗎?

Public senderaddress As String
Public thisEmailContent As String
Public thisEmailTEXT As String
Public thisStaffMember As Integer
Public emailAttachments As String

Sub MacroName()
    thisStaffMember = 1
    Set objItem = GetCurrentItem()
    senderaddress = objItem.SenderEmailAddress
    thisEmailContent = objItem.HTMLBody
    thisEmailTEXT = objItem.Body
    emailAttachments = objItem.Attachments
    UserformName.Show
End Sub

Function GetCurrentItem() As Object
    Dim objApp As Outlook.Application
    Set objApp = Application
    On Error Resume Next
    Select Case TypeName(objApp.ActiveWindow)
        Case "Explorer"
        Set GetCurrentItem = _
        objApp.ActiveExplorer.Selection.Item(1)
        Case "Inspector"
        Set GetCurrentItem = _
        objApp.ActiveInspector.CurrentItem
    Case Else
    End Select
End Function

然后這是用戶表單代碼的最后一部分,當單擊“立即發送”按鈕時,它實際上將數據發送到我們的票務系統...

Public Function encodeURL(str As String)
    Dim ScriptEngine As Object
    Dim encoded As String

    Set ScriptEngine = CreateObject("scriptcontrol")
    ScriptEngine.Language = "JScript"

    encoded = ScriptEngine.Run("encodeURIComponent", str)

    encodeURL = encoded
End Function

Private Sub SendNow_Click()
    Set sendReq = CreateObject("MSXML2.XMLHTTP")
    With sendReq
        .Open "POST", "https://ticketsystemurl.whatever/outlookinterface.php?action=openticket&fromEmail=" & encodeURL(senderaddress) & "&selectedCustomer=" & encodeURL(CustomerSelect.Value) & "&selectedContact=" & encodeURL(ContactSelect.Value), False
        .setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
        .setRequestHeader "Content-type", "application/x-www-form-urlencoded"
        .Send ("notifyCustomer=" & NotifyCustomer.Value & "&staffID=" & thisStaffMember & "&emailContent=" & encodeURL(thisEmailContent) & "&emailTEXT=" & encodeURL(thisEmailTEXT) & "&appendTicket=" & AppendToTicket.Value & "&createNewTicket=" & CreateNewTicket.Value & "&selectedTicket=" & encodeURL(SelectTicket.Value) & "&attachments=" & encodeURL(emailAttachments))
    End With

    Unload Me
End Sub

到目前為止,除了我無法弄清楚如何用實際的附件文件數據填充后變量“附件”之外,它提交了所有內容。 這甚至可能嗎?

Outlook 不會為您執行此操作。 您需要將附件保存為文件 ( Attachment.SaveAsFile ),讀取該文件的內容 ( Scripting.FileSystemObject對象?) 以在您的 Web 請求中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM