One of the many reasons for using HylaFAX is for the ability to submit faxes from any networked
computer, in any order, and in any quantity. HylaFAX will work away at them without anyone ever
walking to a fax machine, and better yet, nobody will be wasting their time watching paper pass through
it... page after page after boring page. If there's a busy signal or no answer, HylaFAX will try later, no need
to remember in a few minutes. HylaFAX remembers its job well.
HylaFAX server must interact with a client program of some kind to receive its faxing instructions.
These client programs may reside on another computer, on the same system as HylaFAX server, or (as
in most cases) a combination of client programs both on the HylaFAX system and off work together for
proper fax sending.
This section deals with several different approaches to this task. However, it is advisable to
at least understand the basics of the HylaFAX client programs themselves, as sent-fax problem debugging and troubleshooting
is best done at that level first. The essential HylaFAX client programs with which to be familiar
and especially sendfax(1). A good reading
would also include hylafax-client(1).
For another HylaFAX client list, see
- HylaFAX itself, of course! Read sendfax(1).
Typical usage would be something like:
sendfax -f "firstname.lastname@example.org" -R -r "faxsubject" -c "coverpage comments" -x "Recipient's company" -d
where email@example.com is a valid e-mail address for the sender, 1234567 is the number where to fax, and tofax.ps is the image file to be faxed.
Standard HylaFAX-compatible file formats are ASCII, TIFF, PostScript, and PDF.
Be aware that sendfax is capable of handling multiple -d options and that only the options that precede it apply to that instance of the -d. In
most cases the -d option is the last option that should be used.
- SuSEFax - See the printed SuSE manual for SuSEFax information.
- tkhylafax is a popular Unix/X11 tcl/tk interface to HylaFAX.
Get it at http://arnolds.dhs.org/steves_world/tkhylafax.
See a screen shot here.
- ksendfax - http://ksendfax.sourceforge.net/.
- GFax - http://www.cowlug.org/gfax/.
Front End Gnome Fax Software For Linux.
Requires Gnome 1.2 or newer such as the Helix release.
- facsBridge T37FSP - T37FSP from Serge Sandler
is a Windows Fax Service Provider (FSP)
that employs T.37 (fax delivery via SMTP). Thus, with some basic mail-to-fax configuration (see below) it will function as a
- WHFC - See http://www.uli-eckhardt.de/whfc/.
- RelayFax - RelayFax is a commercial product sold by
Alt-N Technologies. It has its own fax-server software, but
because it uses an email-to-fax method, the RelayFax client software may be used in conjunction
with a HylaFAX server using sendmail and procmail. See
RelayFax for more information.
- Cypheus from Bodo Noering is
for Windows. It is quite versatile, feature-rich, and has been well-supported. Cypheus serves well
as a fax administrator utility. Get it from
- HylaFSP - A simple, user-friendly client for faxing from Windows 2000/XP. HylaFSP plugs
directly into Microsoft's own 'fax services' and includes support for coverpages (via Microsoft's
coverpage editor), local and shared contacts, and generates high-quality TIFF output for great
Homepage is at http://www.ifax.com/HylaFSP/.
- Respond and adiXein - Uses a Samba share on the HylaFAX server to send print jobs to the faxing
scripts. See http://www.boerde.de/~horstf/ for Respond and
http://www.adixein.com/fax for adiXein.
- w2hfax - w2hfax is a versatile HylaFAX client, allowing sending files directly or sending a fax via printer driver;
view incoming and outgoing fax; cancel and delete fax from the incoming, outgoing or sent folder;
viewing job details; and address books. See http://w2hfax.sourceforge.net/.
- Winprint HylaFAX is a GPL Windows print monitor designed to send its output directly to a HylaFAX
Server. See: http://winprinthylafax.sourceforge.net/.
- HylaFAX Client - See: http://www.swt-online.de/hylafax/index_eng.html.
- MacFlex - see http://homepage.mac.com/robthedude/MacFlex/
Note: MacFlex requires the use of the "old" protocol/ports. This requires hfaxd to be started with "old" protocol
support. However, this protocol is known to be insecure.
- SDFax - SDFax is a commercial print driver for the Macintosh computer. The print job is formatted in either PostScript or TIFF formats and is
sent via e-mail to a fax server in the Internet TPC Fax Project. See http://www.sdesign.com/sdfax1x/mac_os/.
There are numerous ways to implement an email-to-fax configuration, and they will vary noticeably depending on the MTA/MDA (what sendmail package) that is used,
the "To" addressing, and the manner by which the sender communicates the destination number. Some common ways to communicate the destination number are:
- "To: firstname.lastname@example.org" in the header where faxnumber is the destination number. With this method the MTA is generally configured
to direct all mail for fax.domain.org to an alias that is directed at a mail-to-fax script. This will require that DNS be configured to point
the hostname fax.domain.org at the HylaFAX server and that firewalling and routing permit SMTP traffic (on TCP port 25) to also arrive there.
With sendmail a virtusertable (often /etc/mail/virtusertable) should be created with an entry such as "
@fax.domain.org mail2fax". Then run '
create the virtusertable.db file. This tells sendmail to point all mail for fax.domain.org at the mail2fax alias. Then in
/etc/aliases create an entry
such as "
mail2fax: |/usr/local/bin/mail2fax.sh" which will tell sendmail to send all mail for the mail2fax alias at the mail2fax.sh script. Then run '
If sendmail uses smrsh (and it probably does) then an appropriate symlink will need to be made for smrsh (probably '
ln -s /usr/local/bin/mail2fax.sh /etc/smrsh/mail2fax.sh').
With Postfix a virtual alias map should be created by putting an entry such as "
virtual_alias_maps = hash:/etc/postfix/valias" into main.cf.
/etc/postfix/valias with an entry such as "
@fax.domain.org mail2fax". Run '
postmap valias' to
create the valias.db file. This tells postfix to point all mail for fax.domain.org at the mail2fax alias. Then in
/etc/aliases create an entry
such as "
mail2fax: |/usr/local/bin/mail2fax.sh" which will tell postfix to send all mail for the mail2fax alias at the mail2fax.sh script. Then run
newaliases' and '
/usr/local/bin/mail2fax.sh which will accept the mail, extract the required information for submitting the job from the headers, and submit the job.
Here is a sample mail2fax.sh script. This sample script takes the mail, extracts information from the headers, converts the e-mail into a Postscript
faxmail, and submits the job using
sendfax. Make sure that this script is marked as executable ('
/usr/local/bin/mail2fax.sh'). Note that this script does not implement any type of sender screening or authentication. To
prevent unauthorized senders from utilizing the mail-to-fax service this script should be modified to do authenticate the sender before submitting the fax job.
- "To: email@example.com" in the header where faxnumber is the destination number. With this method the sender's outbound SMTP server
will either need to be the mail-to-fax system itself or will need to be configured to route e-mail for the "fax" top-level domain to the mail-to-fax system.
See sendmail-faxmail-mangling for information on how to do this with sendmail.
See http://www.postfix.org/faq.html#fax for information on how to do this with Postfix.
These methods both indicate usage with
faxmail, however, faxmail can be replaced with a sendfax wrapper script.
With a little shell scripting and some MIME-decoding tools it is
fairly easy to customize your own mail-to-fax mechanism using a sendfax wrapper script. sendfax is a HylaFAX command-line client program.
This mail2sendfax script is an
example of how faxmail can be directly replaced with such a wrapper script. Here is an acclaimed more capable derivative
of that same mail2sendfax script so you can see how one may choose to modify it.
- "To: firstname.lastname@example.org" in the header and where the destination number is provided elsewhere (such as in the Subject header or in the mail body).
With this method very little sendmail package configuration needs to be done, usually just an alias pointing to a mail-to-fax script similar to the ones discussed above.
For an alternative example, if procmail is your mail delivery agent (MDA), then you can easily
configure it to handle outbound faxes by setting up a dedicated user account for faxing out and placing
appropriate recipes in that user's $HOME/.procmailrc file. Outbound faxes are then e-mailed to this user account.
This is how the above-mentioned RelayFax client
works, which already has a simple generic email-to-fax capability built-in.
is a HylaFAX client program which takes an electronic mail message
on standard input and converts it to PostScript in a form that is suitable for transmission as a
facsimile. Read the man page: faxmail(1)
faxmail only supports PostScript attachments by default. In order to support other attachment types a MIME converter script
must be used. Recent versions of HylaFAX come with default MIMEConverters for PDF and TIFF file types. To handle other types of files please
and examine the default MIMEConverters.
- Pyla is a GPL Python client similar to WHFC. See:
- Hermesfax is a web-enabled browser-driven client run from a web server. See:
- JHylaFax is a platform independent Java client licensed under the GPL featuring a Swing user interface. See http://jhylafax.sourceforge.net.
- gnu-hylafax is a pure-Java implementation of the HylaFAX (FAX server) client protocol. The gnu.hylafax package can be used to implement a HylaFAX client that will run
on any Java-supporting system. See http://gnu-hylafax.sourceforge.net.
- hylaPEx is a client for hylafax totally written in python. It can read and view the sended and received fax. Support either tiff and ps/pdf formats. Can use redmon for
create a virtual fax print. Support shared contacts with a mysql db. See: http://www.unipex.it/hylapex/index_en.html.
- HylaFAXSender is a simple GUI frontend to send faxes using a HylaFAX server. It is written in Java. See http://beta9.be/hylafax.
- YajHFC is a client for the HylaFAX fax server written completely in Java. See http://yajhfc.berlios.de/.
It is possible to send a (Hyla)FAX by printing to
a Samba-defined fax-printer using a Windows client. This is the recipe:
If there are any difficulties or questions, do not hesitate to contact
Ignace Suy email@example.com
He has provided a sambafax web-site at:
please refer to it for the most up-to-date information.
If you (re team) are working with it, drop him a line.
Sambafax is now suited to run under the printing systems lpd, LPRng and CUPS.
For CUPS the installation is somewhat different. Refer to the website above.
Although a true HylaFAX client for AS/400 is not available (more
tests with the gnu-hylafax java client are scheduled), you can send facsimiles as
print jobs to the HylaFAX server. To do this, some things have to be done but for now
a little note.
I tested this with Red Hat Linux but using a different distros will not present to much
difficulties. The feedback that I received from earlier version of this howto is that most
of the people are not AS/400 experts wich is not a problem but some language that I use in
the steps for AS/400 setup make sense in that plattaform. Ask if you needed any explanation.
- AS/400 procedures:
1. Create an output queue like is presented here outq.txt
and be sure that LPD package is installed and running.
Note: In outq.txt you will find the follow line Workstation costumization object....: LINUXOUTQ2
This applys only for specific national character map like portuguese, italian ,etc,etc.
AS/400 use EBCDIC internally and needed a little help to know that linux use ASCII ;-). Any table can be
modified but I sugest changing the 860 map table.
1. Check if you have enscript installed.
2. Check if lpr is installed and running.
3. Add a printer.
4. Modify the entry for that printer in printcap to match the script as400pscript
where the job from AS/400 is redirected to create the fax and hylafax is called. Read carefully
the script, you will save yourself time and headashes. Here is my printcap for guidance,
Note: The PATHs applies to RH7.x. Don't forget to restart lpd deamon.
Last notes:If you want more control accessing lpd services in the linux box, use LPRng package.
The as400script, by default, merge the text from AS/400 with a file where is stored the company logo.
If you only want send text, disable the merge text+companylogo process (read carefully the as400script).
When merging logos with text, remember, you MUST create the logo file in EPS, Encapsulated Postscript, format.
This was done with Red Hat 7.0, lprng 3.7.4, kernel 2.2.16-22, keyboard pt-latin1,
- Improvement: Rob Sherman changed the as400script to enable multi-page faxing,i e,if you needed same
fixed text(only) in every page. If you are good in postscrip, doing this for graphics it will be easy.
Read carefully the script and place the ACKFORM.hdr file in $PATH/enscript/. Pay attention
that in AS/400 you must specifie your job as ACKFORM. In the as400script2 the ACKFORM.hdr file is invoqued here
/usr/bin/enscript --fancy-header=$FNAME where in FNAME is stored the hdr name file, ACKFORM.
This section was contributed by
Pedro Roçadas firstname.lastname@example.org
Pedro thanks Giulio Orsero for his assistance on this task.