HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Email gateway using Sendmail



> I've got sendmail 8.8.7, hylafax-v4.0pl2, RedHat 5.1, kernel 2.0.34
> 
> I've edited sendmail.cf and I can send faxes to predefined users in /etc/aliases.

There are sendmail configuration macros which will do most if not all
the job for you.

> 
> How do I get it working so that I can fax via email to user@faxnumber.fax ?
> When I try this,  sendmail complains about no domainname "fax".

You inserted the rule into ruleset 0 after it had disposed of all
remote addresses.  The most logical place was the pseudo domains section,
although, for a user hack, ruleset 98 would probably have been better.

Next you inserted it into a configuration file created by the macro
configuration process, not into a minimal file.  The previous processing
had appended a "." which would only be removed if mailertable processing
were enabled.  (The . is actually the result of CPfax, and prevents the
DNS lookup being done; NB CP is not understood by the underlying rule
processing engine, only by the actual rules in the file.)

Finally you had a spurious initial space, and had spaces, instead of tabs,
between the various parts of the rule line.

This a sendmail -bt on your configuration:

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 fred@9999.fax
rewrite: ruleset   3   input: fred @ 9999 . fax
rewrite: ruleset  96   input: fred < @ 9999 . fax >
rewrite: ruleset  96 returns: fred < @ 9999 . fax . >
rewrite: ruleset   3 returns: fred < @ 9999 . fax . >
rewrite: ruleset   0   input: fred < @ 9999 . fax . >
rewrite: ruleset 199   input: fred < @ 9999 . fax . >
rewrite: ruleset 199 returns: fred < @ 9999 . fax . >
rewrite: ruleset  98   input: fred < @ 9999 . fax . >
rewrite: ruleset  98 returns: fred < @ 9999 . fax . >
rewrite: ruleset 198   input: fred < @ 9999 . fax . >
rewrite: ruleset  95   input: < > fred < @ 9999 . fax . >
rewrite: ruleset  95 returns: fred < @ 9999 . fax . >
rewrite: ruleset 198 returns: $# esmtp $@ 9999 . fax . $: fred < @ 9999 . fax .
>
rewrite: ruleset   0 returns: $# esmtp $@ 9999 . fax . $: fred < @ 9999 . fax .

> 
> # resolve fake top level domains by forwarding to other hosts

  This is where the rule logically belongs
> 
> 
> 
> # pass names that still have a host to a smarthost (if defined)
> R$* < @ $* > $*		$: $>95 < $S > $1 < @ $2 > $3	glue on smarthost name

  This next rule starts messing things up.

> 
> # deal with other remote names
> R$* < @$* > $*		$#esmtp $@ $2 $: $1 < @ $2 > $3		user@host.domain

  And this one kills it.

  4 more rules follow before your:
> 
>  R$+<@$+.FAX>          $#fax $@ $2 $: $1               user@host.FAX

This is what you should have had, in the corrected context:

> R$+<@$+.FAX.>		$#fax $@ $2 $: $1		user@host.FAX

 in od -c format:

0000000   R   $   +   <   @   $   +   .   F   A   X   .   >  \t  \t   $
0000020   #   f   a   x       $   @       $   2       $   :       $   1
0000040  \t  \t   u   s   e   r   @   h   o   s   t   .   F   A   X  \n
0000060

and this is what sendmail -bt does when everything is repaired:

Enter <ruleset> <address>
> 3,0 fred@9999.fax
rewrite: ruleset   3   input: fred @ 9999 . fax
rewrite: ruleset  96   input: fred < @ 9999 . fax >
rewrite: ruleset  96 returns: fred < @ 9999 . fax . >
rewrite: ruleset   3 returns: fred < @ 9999 . fax . >
rewrite: ruleset   0   input: fred < @ 9999 . fax . >
rewrite: ruleset 199   input: fred < @ 9999 . fax . >
rewrite: ruleset 199 returns: fred < @ 9999 . fax . >
rewrite: ruleset  98   input: fred < @ 9999 . fax . >
rewrite: ruleset  98 returns: fred < @ 9999 . fax . >
rewrite: ruleset 198   input: fred < @ 9999 . fax . >
rewrite: ruleset 198 returns: $# fax $@ 9999 $: fred
rewrite: ruleset   0 returns: $# fax $@ 9999 $: fred




Project hosted by iFAX Solutions