Courier Mail Server


courierfax — Send faxes via E-mail


sendmail [5558888@fax]

sendmail [5558888@fax-lowres]

sendmail [5558888@fax-ignore]

sendmail [5558888@fax-cover]


The courierfax module (if enabled by the system administrator) sends E-mail messages by fax. Addressing an E-mail message to the address 5558888@fax faxes a printed copy of the message to the specified phone number.

The ability to send faxes may be restricted, or not available. The E-mail message may be a MIME-formatted message. All attachments are concatenated and sent together in a single fax transmission. courierfax only knows how to handle certain kinds of attached. Obviously, trying to fax a voice .mp3 attaching is not going to work. courierfax knows how to handle plain text, Postscript, and PDF MIME attachments. courierfax might also know what to do with other kinds of attachment, depending on some optional software installed by the system administrator. courierfax may also be able to read GIF, PNG, and JPEG images.


Color images are converted to black-and-white.

Images are faxed with one image per fax page (limiting image sizes to about 1600x2200).

The message will be returned as undeliverable if courierfax doesn't know how to handle a MIME attachment. If the first MIME section in the E-mail message is plain text, the text appears on the fax cover page. The sender/recipient information for the cover page is taken from the message's headers.

The default courierfax configuration tries to resend the fax for up to eight hours, after which the message is returned as undeliverable. The message will also be returned as undeliverable if the fax transmission is interrupted. The return bounce will state how many pages were successfully transmitted.

"@fax" may also be followed by additional keywords that specify extra options:


Send a low-resolution fax.


Ignore any attachment types that courierfax doesn't understand.


Send a cover page only. This is useful in limited situations, with something like this in a dot-courier(5) file:

 ! 5552222@fax-cover

This .courier file faxes the contents of a message, sans any attachments, immediately upon receipt in addition to saving the message in the mailbox.


The sender will receive a fax transmission receipt if the sender requests an ESMTP delivery status notification. This is the -N option to sendmail(8):

sendmail -Nsuccess 5556666@fax <messagefile

When using other mail software, consult the mail software's documentation for instructions on requesting ESMTP delivery status notifications.


courierfax configurations that are generated by the webadmin tool for North American environments usually restrict phone numbers to a standardized ten-digit telephone number, so that the fax address is always <aaabbbcccc@fax>, and courierfax silently performs any needed conversion to dial the number (such as adding 1 or dropping the local areacode).

It is also possible to reconfigure courierfax so that it accepts any telephone string and dials it without any preprocessing. If so, the address may contain any combination of digits, letters A, B, C, and D, representing the four extra dialing tones not normally accessible from most telephone keypads, the symbols * and #, or the following characters:


Most faxmodems pause and wait for a secondary dialtone, before dialing the rest of the number.


The dash is replaced by a comma in the dialing string. A comma results in most faxmodems pausing for two or three seconds before dialing the rest of the number. It is not possible to enter a comma directly, because commas are used to separate multiple E-mail addresses. Use dashes instead of commas in the dialing string. courierfax replaces all dashes with commas before dialing the faxmodem.


Similarly, courierfax replaces all pluses with @ characters before dialing. An @ characters results in most faxmodems waiting for the line to be silent for five seconds before dialing the rest of the number. It is not possible to enter a @ directly as part of the telephone number itself, for the obvious reasons. Use pluses instead of @s in the dialing string. courierfax replaces all pluses with @ before dialing the faxmodem.


The slightly arcane configuration file, /etc/courier/faxrc, sets up which dialing strings are valid. The default configuration file contains judicious comments that explain all the parameters, and what they do. The default configuration file disables courierfax by rejecting all telephone numbers. The file must be edited in accordance with the embedded instructions, in order to enable faxing.

Using webadmin is highly recommended. Upon demand, webadmin will install a suitable configuration file for the North American numbering plan, that receives all telephone numbers as ten-digit numbers, and adds any required long distance prefix, or removes the local area code, as appropriate. Or, webadmin will install a bare-bones configuration file that dials any requested phone number, without any editing or transformation.


There is no good way to sleep until a modem lock is released, so we poll every minute.