question

rachid-abbouchi11929 avatar image
rachid-abbouchi11929 asked Tyler Liu answered

Empty Fax using VB6

Hi !

i'm trying to send PDF file using MSXML2.xmlhttp but the client receive empty pdf File as an attachement without any errors. i'm using Visual basic 6.0 to send requests. i sent the same file with RingCentral Web APP and it works. i think the binary conversion is not working proprely here is my code


Function CreateFaxMessage(strPath, _  
                          strStatus, _
                          Receiver, _
                          Optional coverPageText = "", _
                          Optional strResponse = "", _
                          Optional faxResolution As String = "High") As Boolean          Dim strFile, strExt, strContentType, strBoundary, bytData, bytPayLoad          On Error Resume Next  104     With CreateObject("Scripting.FileSystemObject")  106         If .FileExists(strPath) Then
108             strFile = .GetFileName(strPath)
110             strExt = .GetExtensionName(strPath)
            Else
112             strStatus = "File not found"
114             CreateFaxMessage = False                  Exit Function              End If          End With  116     With CreateObject("Scripting.Dictionary")
146         .Add "pdf", "application/pdf"
148         strContentType = .Item(LCase(strExt))
        End With  150     If strContentType = "" Then
152         strStatus = "Invalid file type"
154         CreateFaxMessage = False
            Exit Function
        End If  174     strBoundary = String(2, "-") & Replace(Mid(CreateObject("Scriptlet.TypeLib").Guid, 2, 36), "-", "")
    Dim nFile           As Integer
    Dim baBuffer()      As Byte
    Dim sPostData       As String       '--- read file
    nFile = FreeFile
    Open strPath For Binary Access Read As nFile
    If LOF(nFile) > 0 Then
        ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
        Get nFile, , baBuffer
        sPostData = StrConv(baBuffer, vbFromUnicode)
    End If
    Close nFile
    '--- prepare body
        sPostData = strBoundary & vbCrLf & _
        "Content-Disposition: form-data; name=""attachment""; filename=""" & strFile & """" & vbCrLf & _
        "Content-Transfer-Encoding: binary" & vbCrLf & _
        "Content-Type: " & strContentType & vbCrLf & vbCrLf & _
        sPostData & vbCrLf
        sPostData = sPostData & strBoundary & "--"          Dim params As String  220     params = strBoundary & vbCrLf
222     params = params & "Content-Disposition: form-data; name=""faxResolution""" & vbCrLf & vbCrLf
224     params = params & faxResolution & vbCrLf  232     params = params & strBoundary & vbCrLf
        params = params & "Content-Disposition: form-data; name=""to""" & vbCrLf & vbCrLf
        params = params & Receiver & vbCrLf                       Dim XMLHTTP As Object  218     Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")  240     With XMLHTTP
242         .setTimeouts 0, 60000, 300000, 300000
244         .Open "POST", FaxURL, False
246         '.setRequestHeader "Accept", "application/json; boundary=" & strBoundary
248         .setRequestHeader "Content-Type", "multipart/form-data; boundary=" & Mid(strBoundary, 3)
250         .setRequestHeader "Authorization", "Bearer " & RingCentral.AccessToken
252         .send params & sPostData  260         If Ok(.status) Then
262             strResponse = .responseText
264             CreateFaxMessage = True              Else
266             MsgBox .statusText & " (" & .status & ")"
            End If          End With          Exit Function
 
End Function
fax
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

1 Answer

Tyler Liu avatar image
Tyler Liu answered
Could you please reformat the code? 

We don't have any SDK for VB6. But if you use VB.net, you can use the C# SDK:  https://github.com/ringcentral/ringcentral-csharp-client
1 |3000

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Developer sandbox tools

Using the RingCentral Phone for Desktop, you can dial or receive test calls, send and receive test SMS or Fax messages in your sandbox environment.

Download RingCentral Phone for Desktop:

Tip: switch to the "sandbox mode" before logging in the app:

  • On MacOS: press "fn + command + f2" keys
  • On Windows: press "Ctrl + F2" keys