//(where ServiceReference2 is the root namespace for the web service reference) private void SendFile(string sUsr, string sPwd) { System.IO.FileStream oFS = new System.IO.FileStream("C:\testfile.pdf", FileMode.Open, FileAccess.Read); byte[] bFile = new byte[oFS.Length -1]; try { long len = oFS.Length; oFS.Read(bFile, 0,(int)len); } finally { oFS.Close(); } ServiceReference2.DMWSSoapClient oService = new ServiceReference2.DMWSSoapClient(); ServiceReference2.ServiceAuthHeader oSAH = new ServiceReference2.ServiceAuthHeader(); oSAH.Username = sUsr; oSAH.Password = sPwd; ServiceReference2.Mailing oMailing = new ServiceReference2.Mailing(); ServiceReference2.Address oAddress = new ServiceReference2.Address(); oMailing.MailingDescription = "Description"; oMailing.IsBlackAndWhite = false; oMailing.IsDuplex = false; //AddressNameFormat - defines how the name will be formatted on the address of the letter //(aimed at mailings where the name fields may be used as part of a full mail-merge) // "T"=[Title] [Firstname] [Surname] // "S"=[Title] [Surname] // "F"=[Firstname] [Surname] // "D"=[Fullname] oMailing.AddressNameFormat = "T"; // { oAddress.Title = "NameTitle"; oAddress.FirstName = "FirstName"; oAddress.Surname = "Surname"; oAddress.JobTitle = "JobTitle"; oAddress.FullName = "FullName"; oAddress.Address1 = "Address1"; oAddress.Address2 = "Address2"; oAddress.Address3 = "Address3"; oAddress.Address4 = "Address4"; oAddress.Address5 = "Address5"; } //add address to mailing ServiceReference2.Address[] oAddresses = new ServiceReference2.Address[1]; oAddresses.SetValue(oAddress, oAddresses.Length - 1); oMailing.Addresses = oAddresses; ServiceReference2.Template oTemplate = new ServiceReference2.Template(); { oTemplate.FileData = bFile; oTemplate.FileName = "tsftfile.pdf"; oTemplate.TemplateName = "TemplateName"; oTemplate.AddressedDocument = true; } //add template to mailing ServiceReference2.Template[] oTemplates = new ServiceReference2.Template[1]; oTemplates.SetValue(oTemplate, oTemplates.Length - 1); oMailing.Templates = oTemplates; //Save mailing ServiceReference2.MailingResult oMailingResult = oService.SaveMailing(oSAH, oMailing); if (!oMailingResult.Success) throw new Exception(string.Format("Mailing error: {0}", oMailingResult.FailureMessage)); //Create a proof of the mailing ServiceReference2.Proof oProof = oService.GetProof(oSAH, oMailingResult.MailingGUID, true); int iSecondCount = 0; //Loop for 3 mins waiting for a proof while ((iSecondCount < 180) && oProof.Success && !oProof.ProofReady) { //Sleep for 5 seconds System.Threading.Thread.Sleep(1000); oProof = oService.GetProof(oSAH, oMailingResult.MailingGUID, true); iSecondCount += 1; } if (!oProof.Success | !oProof.ProofReady) throw new Exception("Proof not ready within 3 mins"); //Place the order ServiceReference2.PlaceOrderResult oOrderResult = oService.PlaceOrder(oSAH, oMailingResult.MailingGUID, ""); if (!oOrderResult.Success) throw new Exception(string.Format("PlaceOrder error: {0}", oOrderResult.FailureMessage)); }