VB Fax – Send Files to Multiple Recipients Using SendfaxEx_2

Download the VB fax (VB6) code samples.

This VB6 fax snippet reads a number of files, concatenates them into one string, and submits the VB fax to the Web service (with multiple attachments).

Finally the sample indicates whether the submission succeeded: The return value of a successful submission is the transaction ID (positive number) of the fax in the system, where any other return values indicate that the transmission failed (for more details, see Web Service Return Codes).


Attribute VB_Name = "SendfaxEx_2"
'
' This method sends 2 VB faxes to 2 fax destinations
'
Option Explicit

Public Sub Invoke()

' Prepare fax numbers
Dim FaxNumbers As String: FaxNumbers = "+12125551212;+442075554321"
'
'Read data from a file to a byte-array
'
Const FilenametoFax_1 As String = "c:\temp\1.pdf"
Dim B1() As Byte
B1 = Utils.ReadBinaryFile(FilenametoFax_1)
Dim Len1 As Long: Len1 = UBound(B1) + 1
Dim DataSize As String: DataSize = CStr(Len1)
Dim FileType As String: FileType = "pdf"

' In case additional file(s) are required, add them
Const FilenametoFax_2 As String = "c:\temp\1.doc"
Dim B2() As Byte
B2 = Utils.ReadBinaryFile(FilenametoFax_2)
Dim Len2 As Long: Len2 = UBound(B2) + 1

' And combine the 2 buffers
Dim B() As Byte: B = Utils.ConcatByteArrays(B1, B2)

' Set parameters to reflect multiple documents
DataSize = DataSize & ";" & CStr(Len2)
FileType = FileType & ";" & "doc"

'Invoke the Interfax method
Dim SendFaxResult As Long
Dim objEnv As PocketSOAP.CoEnvelope
Dim objHttp As PocketSOAP.HTTPTransport

Set objEnv = New PocketSOAP.CoEnvelope

objEnv.EncodingStyle = ""

objEnv.SetMethod "SendfaxEx_2", "http://www.interfax.cc"
objEnv.Parameters.Create "Username", Main.Username, objEnv.URI
objEnv.Parameters.Create "Password", Main.Password, objEnv.URI
objEnv.Parameters.Create "FaxNumbers", FaxNumbers, objEnv.URI
objEnv.Parameters.Create "Contacts", "", objEnv.URI
objEnv.Parameters.Create "FilesData", Utils.EncodeBase64(B), objEnv.URI
objEnv.Parameters.Create "FileTypes", FileType, objEnv.URI
objEnv.Parameters.Create "FileSizes", DataSize, objEnv.URI
objEnv.Parameters.Create "Postpone", DateAdd("d", -1, Now()), objEnv.URI 'any time in the past for sending ASAP
objEnv.Parameters.Create "RetriesToPerform", 3, objEnv.URI
objEnv.Parameters.Create "CSID", "MyCSID", objEnv.URI
objEnv.Parameters.Create "PageHeader", "", objEnv.URI
objEnv.Parameters.Create "JobID", "", objEnv.URI
objEnv.Parameters.Create "Subject", "Fax Subject", objEnv.URI
objEnv.Parameters.Create "ReplyAddress", "myaddress@mydomain.com", objEnv.URI
objEnv.Parameters.Create "PageSize", "Letter", objEnv.URI
objEnv.Parameters.Create "PageOrientation", "Landscape", objEnv.URI
objEnv.Parameters.Create "IsHighResolution", False, objEnv.URI
objEnv.Parameters.Create "IsFineRendering", False, objEnv.URI

Set objHttp = New PocketSOAP.HTTPTransport
objHttp.SOAPAction = "http://www.interfax.cc/SendfaxEx_2"
objHttp.send "https://ws.interfax.net/DFS.asmx", objEnv.Serialize
objEnv.parse objHttp

Dim SendResult As Long
SendResult = objEnv.Parameters.Item(0).Value

'Analyze the response
If SendResult > 0 Then
    MsgBox "Fax submitted. Parent transaction ID: " & SendResult
Else
    MsgBox "Error sending fax. Return code: " & SendResult
End If

End Sub