ColdFusion Fax – Send Multiple Files to Multiple Recipients with SendfaxEx_2
This section provides a ColdFusion fax snippet, which reads a number of files, concatenates them into one string, submits the fax to the Web service (with multiple attachments), and indicates whether the submission succeeded. The return value of a successful submission is the transaction ID (positive number) of the fax in the system. Other return values indicate a failure (for more details, see Web Service Return Codes).
Sending a fax from ColdFusion to one or more recipients with one or more attached files is done using the SendfaxEx_2 method, which has more flexible sending capabilities than Sendfax (for more details, see Side-by-side Comparison of Web Service Methods).
<cfoutput>
<!--- Username and password for the Interfax account. --->
<cfset interfaxUsername = "">
<cfset interfaxPassword = "">
<cfset faxNumbers = "+49(711)4900-8548">
<!---
Read the files into memory and concatenate them into a single string.
--->
<cffile action="readbinary" file="#ExpandPath('.')#/sample.pdf" variable="fileSamplePDF">
<cffile action="readbinary" file="#ExpandPath('.')#/sample.doc" variable="fileSampleDOC">
<cffile action="readbinary" file="#ExpandPath('.')#/sample.txt" variable="fileSampleTXT">
<cfscript>
// Concatenate the files
filesBuffer = createObject("java", "java.io.ByteArrayOutputStream").init();
filesBuffer.write(fileSamplePDF, 0, Len(fileSamplePDF));
filesBuffer.write(fileSampleDOC, 0, Len(fileSampleDOC));
filesBuffer.write(fileSampleTXT, 0, Len(fileSampleTXT));
filesData = filesBuffer.toByteArray();
filesBuffer.close();
// Build a list of file types (elements separated by ;) https://www.interfax.net/en/dev/webservice/reference.html#sendfaxex2
filesTypes = "PDF;DOC;TXT";
// Build a list with the size of each file from the concatenated buffer
filesSizes = Len(fileSamplePDF) & ";" & Len(fileSampleDOC) & ";" & Len( fileSampleTXT );
userHighResolution = true;
useFineRendering = true;
</cfscript>
<!--- Create and call the web service --->
<cfset faxWebService = CreateObject("webservice", "https://ws.interfax.net/dfs.asmx?WSDL")>
<cfscript>
faxID = faxWebService.SendFaxEx_2(interfaxUsername, interfaxPassword, faxNumbers, "", filesData, filesTypes, filesSizes,
CreateDateTime(2004, 5, 5, 10, 10, 10), /* Date to send the fax. If it's in the past then the fax is sent ASAP */
0, /* Number of retries to perform */
"", /* CSID */
"", /* PageHeader*/
"", /* JobID */
"Fax subject", "mackmack@gmail.com", "A4", "Portrait",
userHighResolution,
useFineRendering
);
</cfscript>
<!--- Check to see if the fax was sent ok. --->
<cfif faxID gt 0>
Fax submitted ok. Transaction ID: #faxID#
<cfelse>
Error submitting fax.
Return code: #faxID#.<br>
Error message: #faxID#
</cfif>
</cfoutput>