If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
Merge to Fax with SBS/Exchange?
I'm trying to do a large merge-to-fax from Outlook contacts in Word (all
2003) with fields embeded in the letter. But my "merge to fax" button is grayed-out?! I'e read a lot of the threads regarding this issue and third-party fax programs, but I'm conntected to Small Business Server (2003) and Exchange. I thought that capability was supposed to be a part of the package? Is something mis-configured on the server, or is there something I can do to the workstation to recognize it, and turn-on merge-to-fax? |
#2
|
|||
|
|||
Merge to Fax with SBS/Exchange?
Here's my standard reply concerning merge to fax, slightly modified in a way
that I hope will help for an SBS2003-based network. However, I do not actually have an SBS2003 set up here at the moment and cannot check some of the details. For Windows 2000&XP and Word 2003, the only "official" way to merge to fax is to have the full Outlook (not Outlook Express) and merge to e-mail - see e.g. http://support.microsoft.com/default...b;EN-US;289532 However, a. the "Merge to fax" button/option is never enabled in Word 2003 b. although it is possible to enable the button, Word actually uses exactly the same method to send a fax (i.e. via MAPI/Outlook) as it uses to send an e-mail. The only difference is that you see a slightly different Word dialog box for setting up the fax. c. Office 2003 has introduced support for faxing to "Internet fax services" such as Venali. If you want to go that route, as things stand I think your only option is to go the merge-to-e-mail route. I have no experience of merging to these new fax services with the production version of Word 2003. d. however, as far as I know, if you have any images in your fax, faxing via "merge to e-mail" will not format your document correctly (it's the step that renders the e-mail into fax format that goes wrong). If you really want to enable the merge to fax button, you need to create a file called msmail.ini in your Windows directory (or WINNT directory or whatever) with at least the following lines: [EFAX Transport] LocalFax=1 If you want to merge to a faxmodem rather than an Internet fax service, and your merge is fairly simple (one fax for each record in the data source) you could try the following macro. This macro seems to work with a faxmodem on the local machine (the one where you are running the merge). I believe, but am not completely certain, that you will be able to use the faxmodem on the SBS2003 machine If you're going to try it, please read the notes, modify the macro to suit your needs, and test it (a couple of other people have used the macro successfully with various versions of Word and Windows) If you're unfamiliar with VBA etc. getting this to work could be quite difficult. A useful starting point is the Word MVPs site at http://www.mvps.org/word , and specifically the following "get-you-started" article http://www.mvps.org/word/FAQs/Macros...eateAMacro.htm The macro code: '----------------------------------------------------- Sub MergeOneFaxPerSourceRec() ' Disclaimer: Use this macro at your own risk. ' Purpose: Perform one Word mailmerge for each record in ' a Word data source, sending the results of each ' merge to a different fax number specified in a ' column of the data source ' Author: Peter J Jamieson ' Date: November 2003 ' Assumes: Word 2000 or later (Word 97 might work) ' Windows 2000 or later, with the standard ' fax service software installed and ' configured to use a working fax device ' You have used Tools|References in the VBA ' editor to add the appropriate type library ' ("Faxcom 1.0 Type Library") ' You correctly adapt the macro to your ' environment ' Overview: The routine performs one merge per record ' in the data source. For each merge, the macro: ' - creates a new Word document ' - "prints" the document to the Fax printer, ' but outputting the result to a .tif file ' rather than allowing the fax printer to ' send the fax directly. This allows us to ' specify the fax number etc. in the macro ' rather than having to respond to the fax ' printer's dialog box. ' - submits the tif file to the fax service ' - discards the Word document ' ' Notes: This does not use the Extended Fax client API ' because it is not available in Windows 2000. ' ' This macro relies on the fax service to deliver ' the faxes once trhey have been submitted. You ' should use the fax service to verify which faxes ' have been sent and which, if any, failed. The fax ' service should retain a copy of each fax submitted ' so that retransmission should be feasible from ' within the service, i.e. without re-running the ' merge. ' NB, needs bettor error management and doubtless other ' things a VBA expert would point out. ' Specify the path for the .tif files saved by the Fax Printer ' This path must exist and the name should end with "\" Const sTifFolder = "c:\tif\" ' Specify the name of the .tif file to output Const sTifFile = "mergetif.tif" ' Specify the fax printer name that makes it all work Const sFaxPrinter = "Fax" Dim bFaxPortAvailable As Boolean Dim bFaxServerAvailable As Boolean Dim bTerminateMerge As Boolean Dim lJobID As Long Dim lSourceRecord As Long Dim oApp As Word.Application Dim oDataFields As Word.MailMergeDataFields Dim oDoc As Word.Document Dim oFaxDoc As FAXCOMLib.FaxDoc Dim oFaxPort As FAXCOMLib.FaxPort Dim oFaxPorts As FAXCOMLib.FaxPorts Dim oFaxServer As FAXCOMLib.FaxServer Dim oMerge As Word.MailMerge Dim sActivePrinter As String Dim sTifPath As String ' Phase 1. ' Connect to the Fax server ' and optionally see if a Port is available Set oFaxServer = CreateObject("FaxServer.FaxServer") If oFaxServer Is Nothing Then MsgBox "Could not create a fax server object" bFaxServerAvailable = False Else ' This should connect us to the fax server on the current machine ' oFaxServer.Connect Servername:=Environ("computername") ' But in this case, we want the fax server on the SBS2003 machine. ' I think one of the following will work once uncommented but cannot be su 'oFaxServer.Connect Servername:="your SBS server computer name" 'oFaxServer.Connect Servername:="\\your SBS server computer name" bFaxServerAvailable = True bFaxPortAvailable = True ' begin optional section ' - ensure that at least one output port is available ' - not essential but we will just see an error later ' if no output port is available Set oFaxPorts = oFaxServer.GetPorts If oFaxPorts.Count = 0 Then MsgBox "The fax server has no fax devices" bFaxPortAvailable = False Else ' look for a port that can send For i = 1 To oFaxPorts.Count Set oFaxPort = oFaxPorts.Item(i) If oFaxPort.Send = 0 Then Set oFaxPort = Nothing Else Exit For End If Next If oFaxPort Is Nothing Then MsgBox "The fax server has no ports configured to send faxes" bFaxPortAvailable = False Else ' at the moment we do not use the FaxPort object to get status ' info. so just get rid of it Set oFaxPort = Nothing End If End If ' we do not need this either Set oFaxPorts = Nothing ' end optional section End If ' Phase 2. ' We can fax, so set up the printer ' and start the merges. If bFaxServerAvailable And bFaxPortAvailable Then ' You may need to change this Set oApp = Application ' The mail merge main document is assumed ' to be the active document in the current ' instance of Word Set oDoc = oApp.ActiveDocument Set oMerge = oDoc.MailMerge Set oDataFields = oMerge.DataSource.DataFields ' save and set up the active printer sActivePrinter = oApp.ActivePrinter ' don't change the printer if it is already ' correctly set up ' (I had problems when I tried to switch ' to the fax printer in code) ' you may need to adjust this for your ' fax printer name If Left(sActivePrinter, 3) sFaxPrinter Then oApp.ActivePrinter = sFaxPrinter End If With oMerge ' If no data source has been defined, ' do it here using OpenDataSource. ' But if it is already defined in the document, ' you should not need to define it here. ' .OpenDataSource _ ' Name:="whatever" lSourceRecord = 1 bTerminateMerge = False Do Until bTerminateMerge .DataSource.ActiveRecord = lSourceRecord ' if we have gone past the end ' (and possibly, if there are no records) ' then the Activerecord will not be what ' we have just tried to set it to If .DataSource.ActiveRecord lSourceRecord Then bTerminateMerge = True Else .DataSource.FirstRecord = lSourceRecord .DataSource.LastRecord = lSourceRecord .Destination = wdSendToNewDocument .Execute ' Word always sets the output document produced ' by the merge to be the ActiveDocument ' Now print to the fax printer, specifying an ' OutputFileName. ' Specifying Background:=False is ' particularly important or the fax stage ' will fail later ' create the full path name for the file. ' (done separately so you can change the way ' you create the name and re-use the name later) sTifPath = sTifFolder + sTifFile oApp.PrintOut _ Background:=False, _ Append:=False, _ Range:=wdPrintAllDocument, _ OutputFileName:=sTifPath, _ Item:=wdPrintDocumentContent, _ Copies:=1, _ PageType:=wdPrintAllPages, _ PrintToFile:=True ' Don't need the document any more oApp.ActiveDocument.Close Savechanges:=False ' Now make a FaxDocument Set oFaxDoc = oFaxServer.CreateDocument(sTifPath) If oFaxDoc Is Nothing Then MsgBox "Could not create the fax document" ' you could consider finishing here by setting ' TerminateMerge = True Else ' fill in whatever details you need ' from the data source or elsewhere With oFaxDoc ' The number to send to. The only really essential ' piece of information. Here we get it from ' a field in the data source called "faxnumber" .FaxNumber = oDataFields("faxnumber") ' DisplayName is a "user-friendly" name used ' by the Fax Server when you e.g. inspect the ' current fax status ' here we get it from a field in the data source ' called ufname .DisplayName = oDataFields("ufname") ' here we just set it to "" '.DisplayName = "" ' If you want a cover page, set SendCoverPage ' to a nonzero value. You could define whether ' or not you want a cover page, and which ' page to use, in your data source. However, ' if you specify a cover page, you /must/ ' provide a valid name for the page. This code ' does not verify whether you do or not. .SendCoverpage = 0 ' If the cover page (.cov file) is a common ' cover page located on the server (i.e. in the ' default folder), set ServerCoverPage=-1 ' and provide the name of the cover page ' If the cover page is somewhere else, ' set ServerCoverPage=0 and specify the ' full path name of the cover page .ServerCoverpage = 1 .CoverpageName = "" ' The following items may be used in the coverpage ' or they may be displayed in fax service status ' dialog boxes. The items visible in the Win2000 ' fax status are indicated by '** displayed in dialog .CoverpageNote = "" .CoverpageSubject = "" .EmailAddress = "" .RecipientAddress = "" .RecipientCity = "" .RecipientCompany = "" .RecipientCountry = "" .RecipientDepartment = "" .RecipientHomePhone = "" '** displayed in dialog .RecipientName = "" .RecipientOffice = "" .RecipientOfficePhone = "" .RecipientState = "" .RecipientTitle = "" .RecipientZip = "" .SenderAddress = "" '** displayed in dialog .SenderCompany = "" '** displayed in dialog .SenderDepartment = "" .SenderFax = "" .SenderHomePhone = "" '** displayed in dialog .SenderName = "" .SenderOffice = "" .SenderOfficePhone = "" .SenderTitle = "" '** displayed in dialog .BillingCode = "" ' DiscountSend = 0 means "send immediately ' If you have set up discount periods, setting ' DiscountSend to a nonzero value will make the ' fax service send in a discount period .DiscountSend = 0 ' In theory, the TSID is the Fax sender ID printed ' on the fax, i.e. typically your contact fax number, ' but the value set up in the fax service appears to ' override any value set here. '.Tsid = "" End With ' Now send the thing. We don't actually do anything ' with the ID except check it is nonzero lJobID = oFaxDoc.Send() Set oFaxDoc = Nothing End If End If ' move to the next record lSourceRecord = lSourceRecord + 1 Loop End With ' All done. Restore the previous printer ' if necessary. You may need to tweak this If Left(sActivePrinter, 3) sFaxPrinter Then oApp.ActivePrinter = sActivePrinter End If Set oDataFields = Nothing Set oMerge = Nothing Set oDoc = Nothing 'Set oApp = Nothing End If If bFaxServerAvailable Then oFaxServer.Disconnect Set oFaxServer = Nothing End If End Sub -- Peter Jamieson - Word MVP I wish this was a simple case of "you have word, you have mailmerge, you have a shared fax service, all you need do is connect them up". But unfortunately, there is nothing straightforward about mailmerging to fax. My understanding of this area is as follows - however, I'm not up-to-date with SBS2003 and for a complete understanding you will probably need to look elsewhere - the Outlook experts will probably know at least part of the picture. Word's merge to fax button was designed for use with the "Fax at Work" fax system that came with Windows 9x. If I remember correctly, this let you send each copy of a form Letter (say) to a different fax recipient. Fax At Work is not available on Windows 2000 and later (or Windows NT). Word 2000 and later replaced "Fax At Work" with a new fax system/service. You can send Word documents to this fax service using the File|Send To menu in Word. You can also choose the Fax Printer as a destination for a merge. However, what that does is to send the entire output of a merge to a single fax number. What it does not let you do is the same thing as the old Fax at Work fax system let you do, i.e. send each copy of (say) a form Letter to a different fax number. I believe that is why the merge to fax option is greyed out in Word. The only mechanism provided as standard for merge to fax on Win2K and later is to merge to e-mail, using a Fax number as the address to send to. It is then up to your e-mail client (and/or MAPI) to send the e-mail using the fax facilities available. As far as the out-of-the-box software is concerned, that means you use Outlook as your e-mail client and you set it up so it can send to a fax service. Outlook can certainly send to the local fax service on (e.g. WinXP), and I believe that it should be able to send to the shared fax service on an SBS2003 system, but I am not certain about that. The other mechanism for sending faxes provided in Office 2003 (well, Outlook 2003) is that you can send to an Internet fax service provider, which then actually sends the fax to the recipient. (i.e. in this case you do not need a faxmodem, you just need an Internet Connection and an account with one of these providers). Unfortunately, there are a number of problems in this area. For one thing, you can't just provide , in the same way that you can send each copy of a form letter to an e-mail address in your data source. SBS 2003 comes with a fax service which can be shared over your LAN. In fact, this is a part of Windows 2003 Server (it's in all current "editions" of Windows 2003 Server except the Web Edition) "Merge to fax" is (almost) always greyed out on Win 2K and later. The button is really there to support the old "Fax at Work" fax facilities in Win 9x. It is possible to ungrey it, but if you then use it, what Word actually does is a merge to e-mail, using an "e-mail" address that tells Outlook (or MAPI) that the message should be delivered using a fax service. -- Peter Jamieson "Tom" wrote in message ... I'm trying to do a large merge-to-fax from Outlook contacts in Word (all 2003) with fields embeded in the letter. But my "merge to fax" button is grayed-out?! I'e read a lot of the threads regarding this issue and third-party fax programs, but I'm conntected to Small Business Server (2003) and Exchange. I thought that capability was supposed to be a part of the package? Is something mis-configured on the server, or is there something I can do to the workstation to recognize it, and turn-on merge-to-fax? |
#3
|
|||
|
|||
Merge to Fax with SBS/Exchange?
|
#4
|
|||
|
|||
Merge to Fax with SBS/Exchange?
It's all hogwash?
I'd at least try it to see how far you get. if it does what you need, you're OK. Further, patches etc. for Word may have changed the situation since I wrote my article. The one thing I do know as a consequence of researching and writing the macro is that the more recent fax services do at least have the logical capability to support merge to fax - it's just that AFAIK, Word does not know how to use them. I'm not in a position to make any recommendations on third-party packages that might help in this area - it may be worth posting that part of your question again to see if others here can help on that front. You might find some help at http://www.slipstick.com (which is primarily concerned with Outlook and Exchange) -- Peter Jamieson "Tom" wrote in message ... In article , says... Here's my standard reply concerning merge to fax, slightly modified in a way that I hope will help for an SBS2003-based network. Thank you, Peter. It's mind-boggling that the "complete Microsoft small business solution" (Office 2003, SBS2003, Exchange, and so forth) provides no reasonable "solution" for something as basic as a fax merge? A search of online help in Outlook (2003) provides a quick little blurb on how easy it is to shoot contacts into word, place the fields in the document, and press "Merge to fax." It's all hogwash? It sounds as though using the mail transport would be a somewhat workable kludge, but the fax contains some complex graphics and layout elements, so it that's probably not the route to go. Does anyone have any recomendations for a third-party solution? Phone bill cost is not an issue, so we'd rather have the best fax merge capability running on our server than a more limiting provider service. Thank you! -Tom |
Thread Tools | |
Display Modes | |
|
|