![]() |
> 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