Sample VB Script to Send a Fax Programmatically
Below is the VB-script for Windows Script Host (cscript.exe/wscript.exe). This script can be easily customised for VB6 or VBA script (MS Office). For more advanced scripting using VB6 and VBA, consider to add a COM reference to Microsoft Fax Service Extended COM Type Library (Windows XP and above), or FaxCom Type Library (Windows 2000).
Sub CheckError(strDetails)
Dim strErr
If Err.Number <> 0 then
strErr = strDetails & " : Exception " & Err.Description & " err.Number=0x" & Hex(Err.Number)
WScript.Echo strErr
WScript.Quit(Err.Number)
End If
End Sub
On Error Resume Next
For Windows XP
Set FaxServer = WScript.CreateObject("FAXCOMEX.FaxServer")
CheckError("WScript.CreateObject(FAXCOMEX.FaxServer)")
WScript.Echo "FaxServer created"
' Connect to the fax server. Specify computer name if the server is remote. See How to connect to a remote Fax Service for details.
FaxServer.Connect ""
CheckError("FaxServer.Connect")
Set FaxDoc = WScript.CreateObject("FAXCOMEX.FaxDocument")
CheckError("WScript.CreateObject(FAXCOMEX.FaxDocument)")
' Set file name of any printable document.
FaxDoc.Body = "test.rtf"
CheckError("FaxDoc.Body")
FaxDoc.DocumentName = "My First Fax"
' Add recipient's fax number. If this string contains a canonical fax number
' (starting with plus + followed by country code, area code in round brackets and the fax number),
' the Fax Service will translate that number into dialable format in accordance with your current location.
' Otherwise, make sure the international prefix or long distance prefix is specified when needed,
' as the fax number will be passed on to a fax driver (Fax Service Provider) unchanged.
' For example, sending a fax from San Francisco to Sydney's fax number 123456, the canonical address
' +61(2)123456 will be translated into dialable address 011612123456.
' If you are using T37FSP in conjunction with Internet Fax Service, specify absolute address
' 612123456 (without leading plus, to avoid translation into dialable format),
' as Internet Fax Service expects the number in the absolute format.
FaxDoc.Recipients.Add ("612123456")
' Optionally, set the sender properties.
' T37FSP uses only FaxDoc.Sender.Email in Windows Server 2003/2008 for delivery status notifications.
FaxDoc.Sender.Email = "bob@xyz.com"
FaxDoc.Sender.Name = "Bob"
FaxDoc.Sender.FaxNumber = "7777777"
' Optionally, you can control banner in outbound faxes
objFaxServer.Folders.OutgoingQueue.Branding = True ' True to set banner on, False to set banner off
objFaxServer.Folders.OutgoingQueue.Save ' Make the change persistent
' Optionally, use objFaxServer.Folders.OutgoingQueue.Retries and
' objFaxServer.Folders.OutgoingQueue.RetryDelay to control retries
' Submit the document to the connected fax server and get back the job ID.
JobID = FaxDoc.ConnectedSubmit(FaxServer)
CheckError("FaxDoc.ConnectedSubmit")
WScript.Echo "FaxDoc.ConnectedSubmit success"
For Windows 2000
Set FaxServer = WScript.CreateObject("FaxServer.FaxServer")
CheckError("WScript.CreateObject(FaxServer.FaxServer)")
WScript.Echo "FaxServer created"
' Connect to the fax server.
FaxServer.Connect ""
CheckError("FaxServer.Connect")
Set FaxDoc = FaxServer.CreateDocument("test.rtf")
CheckError("FaxServer.CreateDocument")
' Add recipient's fax number. See above comments on the fax number format.
FaxDoc.FaxNumber = "612123456"
' Submit the document to the connected fax server
FaxDoc.Send
CheckError("FaxDoc.Send")
WScript.Echo "FaxDoc.Send success"