My system:
FreeBSD 5.4
Sendmail 8.13.3/8.13
I want to deliver mails to the cyrus imapd (like described in the
manuel from cyrus). But the problem is sendmail delivers only to
/var/mail.. . If I start sendmail -bt and type in M= it gets:
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> mailer 0 (prog): P=/bin/sh S=EnvFromL/HdrFromL R=EnvToL/HdrToL M=0 U=-1:-1 F=9DFMeloqsu L=0 E=\n T=X-Unix/X-Unix/X-Unix r=10 0 A=sh -c $u
mailer 1 (*file*): P=[FILE] S=parse/parse R=parse/parse M=0 U=-1:-1
F=9DEFMPloqsu L=0 E=\n T=X-Unix/X-Unix/X-Unix r=100 A=FILE $u
mailer 2 (*include*): P=/dev/null S=parse/parse R=parse/parse M=0
U=-1:-1 F=su L=0 E=\n T=<undefined>/<undefined>/<undefined> r=100
A=INCLUDE $u
mailer 3 (local): P=/usr/libexec/mail.local S=EnvFromSMTP/HdrFromL
R=EnvToL/HdrToL M=0 U=-1:-1 F=/59:@ADFMPSXlmnqswz| L=0 E=\r \n
T=DNS/RFC822/SMTP r=100 A=mail.local -l
mailer 4 (smtp): P=[IPC] S=EnvFromSMTP/HdrFromSMTP
R=EnvToSMTP/EnvToSMTP M=0 U=-1:-1 F=DFMXmu L=990 E=\r\n
T=DNS/RFC822/SMTP r =100 A=TCP $h
mailer 5 (esmtp): P=[IPC] S=EnvFromSMTP/HdrFromSMTP
R=EnvToSMTP/EnvToSMTP M=0 U=-1:-1 F=DFMXamu L=990 E=\r\n
T=DNS/RFC822/SMTP r=100 A=TCP $h
mailer 6 (smtp8): P=[IPC] S=EnvFromSMTP/HdrFromSMTP
R=EnvToSMTP/EnvToSMTP M=0 U=-1:-1 F=8DFMXmu L=990 E=\r\n
T=DNS/RFC822/SMTP r=100 A=TCP $h
mailer 7 (dsmtp): P=[IPC] S=EnvFromSMTP/HdrFromSMTP
R=EnvToSMTP/EnvToSMTP M=0 U=-1:-1 F=%DFMXamu L=990 E=\r\n
T=DNS/RFC822/SMTP r=100 A=TCP $h
mailer 8 (relay): P=[IPC] S=EnvFromSMTP/HdrFromSMTP R=MasqSMTP/MasqSMTP
M=0 U=-1:-1 F=8DFMXamu L=2040 E=\r\n T=DNS/RFC822/SMTP r=100 A=TCP $h
>
Is this correct? I expect one line with cyrus...
Any ideas? Thank you in advance.
Here is my sendmail.mc:
divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.29 2003/12/24
21:15:09 gshapiro Exp $')
OSTYPE(freebsd5)
DOMAIN(generic)
FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
define(`confCW_FILE', `-o /etc/mail/local-host-names')
dnl The group needs to be mail in order to read the sasldb2 file
define(`confRUN_AS_USER',`root:mail')dnl
define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLDBFile')dnl
define(`confAUTH_MECHANISMS',`LOGIN PLAIN')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
FEATURE(`access_db')
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
define(`confLOCAL_MAILER', `cyrusv2')
MAILER(local)
MAILER(cyrusv2)
MAILER(smtp)
Kind regards,
Martin
sendmail.mc looks ok.
Standard set of "startup" questions:
1) Have you generated new sendmail.cf after modifying *.mc file?
2) Have you restarted (or HUPed) sendmail daemon?
[ the daemon rememembers "at startup" sendmail.cf ]
3) What is reported by the test commands below?
[ run it as root ]
echo '3,0 userx' | sendmail -bt
echo '3,0 userx' | sendmail -d21.12 -bt
--
[en: Andrew] Andrzej Adam Filip : an...@priv.onet.pl : an...@xl.wp.pl
http://www.sendmail.org/faq/ http://www.sendmail.org/m4/readme.html
http://anfi.homeunix.net/sendmail/B4UAsk-Sendmail.html
Netcraft Site Rank: 529048
1) Have you generated new sendmail.cf after modifying *.mc file?
Yes, I did. In FreeBSD you can it do very easy (make ...)
2) Have you restarted (or HUPed) sendmail daemon?
[ the daemon rememembers "at startup" sendmail.cf ]
I restarted more then once the hole server.
3) What is reported by the test commands below?
Here is the the output of the two commands:
acsvfbsd02# echo '3,0 userx'|sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify input: userx
Canonify2 input: userx
Canonify2 returns: userx
canonify returns: userx
parse input: userx
Parse0 input: userx
Parse0 returns: userx
ParseLocal input: userx
ParseLocal returns: userx
Parse1 input: userx
Parse1 returns: $# local $: userx
parse returns: $# local $: userx
> acsvfbsd02# echo '3,0 userx' | sendmail -d21-12 -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify input: userx
Canonify2 input: userx
Canonify2 returns: userx
canonify returns: userx
parse input: userx
Parse0 input: userx
Parse0 returns: userx
ParseLocal input: userx
ParseLocal returns: userx
Parse1 input: userx
Parse1 returns: $# local $: userx
parse returns: $# local $: userx
Any ideas?
Regards,
Martin
Contents of the .mc file?
--
Rob MacGregor (BOFH) Oh my God! They killed init! You bastards!
This landing is gonna get pretty interesting.
Define "interesting".
Oh God, oh God, we're all going to die?
> Hello Andrzej
>
> 1) Have you generated new sendmail.cf after modifying *.mc file?
>
> Yes, I did. In FreeBSD you can it do very easy (make ...)
>
> 2) Have you restarted (or HUPed) sendmail daemon?
> [ the daemon rememembers "at startup" sendmail.cf ]
>
> I restarted more then once the hole server.
>
> 3) What is reported by the test commands below?
>
> Here is the the output of the two commands:
>
> acsvfbsd02# echo '3,0 userx'|sendmail -bt
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
> Enter <ruleset> <address>
> > canonify input: userx
> Canonify2 input: userx
> Canonify2 returns: userx
> canonify returns: userx
> parse input: userx
> Parse0 input: userx
> Parse0 returns: userx
> ParseLocal input: userx
> ParseLocal returns: userx
> Parse1 input: userx
> Parse1 returns: $# local $: userx
> parse returns: $# local $: userx
It looks like sendmail.cf generated from *.mc file without local mailer
"redirection" you have in your *.mc file:
define(`confLOCAL_MAILER', `cyrusv2')
> > acsvfbsd02# echo '3,0 userx' | sendmail -d21-12 -bt
It should be "-d21.12" but first test was sufficient.
> Any ideas?
I bet on some problems during *.mc -> sendmail.cf conversion.
--
[en: Andrew] Andrzej Adam Filip : an...@priv.onet.pl : an...@xl.wp.pl
http://www.sendmail.org/faq/ http://www.sendmail.org/m4/readme.html
http://anfi.homeunix.net/sendmail/B4UAsk-Sendmail.html
Netcraft Site Rank: 530672
> schweize...@gmail.com wrote:
> > Hello Andrzej
> >
> > 1) Have you generated new sendmail.cf after modifying *.mc file?
> >
> > Yes, I did. In FreeBSD you can it do very easy (make ...)
> <---SNIP--->
> > Any ideas?
>
> Contents of the .mc file?
It was posted at the end of post starting the thread.
--
[en: Andrew] Andrzej Adam Filip : an...@priv.onet.pl : an...@xl.wp.pl
http://www.sendmail.org/faq/ http://www.sendmail.org/m4/readme.html
http://anfi.homeunix.net/sendmail/B4UAsk-Sendmail.html
Netcraft Site Rank: 530672
> It looks like sendmail.cf generated from *.mc file without local mailer
"redirection" you have in your *.mc file:
> define(`confLOCAL_MAILER', `cyrusv2')
> I bet on some problems during *.mc -> sendmail.cf conversion.
Here is the mailer partition from sendmail.cf
######################################################################
######################################################################
#####
##### MAIL FILTER DEFINITIONS
#####
######################################################################
######################################################################
#
######################################################################
######################################################################
#####
##### MAILER DEFINITIONS
#####
######################################################################
######################################################################
##################################################
### Local and Program Mailer specification ###
##################################################
##### $Id: local.m4,v 8.59 2004/11/23 00:37:25 ca Exp $ #####
#
# Envelope sender rewriting
#
SEnvFromL
R<@> $n errors to mailer-daemon
R@ <@ $*> $n temporarily bypass Sun bogosity
R$+ $: $>AddDomain $1 add local domain if needed
R$* $: $>MasqEnv $1 do masquerading
#
# Envelope recipient rewriting
#
SEnvToL
R$+ < @ $* > $: $1 strip host part
R$+ + $* $: < $&{addr_type} > $1 + $2 mark with addr type
R<e s> $+ + $* $: $1 remove +detail for sender
R< $* > $+ $: $2 else remove mark
#
# Header sender rewriting
#
SHdrFromL
R<@> $n errors to mailer-daemon
R@ <@ $*> $n temporarily bypass Sun bogosity
R$+ $: $>AddDomain $1 add local domain if needed
R$* $: $>MasqHdr $1 do masquerading
#
# Header recipient rewriting
#
SHdrToL
R$+ $: $>AddDomain $1 add local domain if needed
R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
#
# Common code to add local domain name (only if always-add-domain)
#
SAddDomain
Mlocal, P=/usr/libexec/mail.local, F=lsDFMAw5:/|@qPSXmnz9,
S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/SMTP,
A=mail.local -l
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=sh -c $u
#####################################
### SMTP Mailer specification ###
#####################################
##### $Id: smtp.m4,v 8.64 2001/04/03 01:52:54 gshapiro Exp $ #####
#
# common sender and masquerading recipient rewriting
#
SMasqSMTP
R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
R$+ $@ $1 < @ *LOCAL* > add local qualification
#
# convert pseudo-domain addresses to real domain addresses
#
SPseudoToReal
# pass <route-addr>s through
R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
# output fake domains as user%fake@relay
# do UUCP heuristics; note that these are shared with UUCP mailers
R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
# leave these in .UUCP form to avoid further tampering
R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
R$+ < @ $~[ $* : $+ > $@ $1 < @ $4 > strip mailer: part
R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
#
# envelope sender rewriting
#
SEnvFromSMTP
R$+ $: $>PseudoToReal $1 sender/recipient common
R$* :; <@> $@ list:; special case
R$* $: $>MasqSMTP $1 qualify unqual'ed names
R$+ $: $>MasqEnv $1 do masquerading
#
# envelope recipient rewriting --
# also header recipient if not masquerading recipients
#
SEnvToSMTP
R$+ $: $>PseudoToReal $1 sender/recipient common
R$+ $: $>MasqSMTP $1 qualify unqual'ed names
R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
#
# header sender and masquerading header recipient rewriting
#
SHdrFromSMTP
R$+ $: $>PseudoToReal $1 sender/recipient common
R:; <@> $@ list:; special case
# do special header rewriting
R$* <@> $* $@ $1 <@> $2 pass null host through
R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
R$* $: $>MasqSMTP $1 qualify unqual'ed names
R$+ $: $>MasqHdr $1 do masquerading
#
# relay mailer header masquerading recipient rewriting
#
SMasqRelay
R$+ $: $>MasqSMTP $1
R$+ $: $>MasqHdr $1
Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP,
E=\r\n, L=2040,
T=DNS/RFC822/SMTP,
A=TCP $h
Should be there the entries from /sendmail/cf/mailer/cyrusv2.m4? If
yes, why the entries are not there?
For testing reasons I changed the mailers (procmail, uucp, fax etc.) in
the sendmail.mc and compiled it. The above entries did never change. In
the attached maillog I also see never cyrusv2 as mailer:
m-mta[702]: k0TEBtog000702: --- 220 acsvfbsd02.acutronic.ch ESMTP
Sendmail 8.13.3/8.13.3; Sun, 29 Jan 2006 15:11:55 +0100 (CET)
Jan 29 15:11:55 acsvfbsd02 sm-mta[702]: k0TEBtog000702: <-- XXXX
[192.168.20.250]
Jan 29 15:11:55 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 500 5.5.1
Command unrecognized: "XXXX [192.168.20.250]"
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: <-- HELO
[192.168.20.250]
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 250
acsvfbsd02.acutronic.ch Hello [192.168.20.250], pleased to meet you
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: <-- MAIL
FROM:<mar...@acutronic.ch>
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 250 2.1.0
<mar...@acutronic.ch>... Sender ok
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: <-- RCPT
TO:<mar...@acutronic.ch>
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 250 2.1.5
<mar...@acutronic.ch>... Recipient ok
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: <-- DATA
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 354 Enter
mail, end with "." on a line by itself
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702:
from=<mar...@acutronic.ch>, size=603, class=0, nrcpts=1,
msgid=<43DCDB3E.3...@martin.acutronic.ch>, proto=SMTP,
daemon=IPv4, relay=[192.168.20.250]
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtog000702: --- 250 2.0.0
k0TEBtog000702 Message accepted for delivery
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtoh000702: <-- QUIT
Jan 29 15:11:56 acsvfbsd02 sm-mta[702]: k0TEBtoh000702: --- 221 2.0.0
acsvfbsd02.acutronic.ch closing connection
Jan 29 15:11:56 acsvfbsd02 sm-mta[703]: k0TEBtog000702:
to=<mar...@acutronic.ch>, ctladdr=<mar...@acutronic.ch> (1001/0),
delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30861, relay=local,
dsn=2.0.0, stat=Sent
Jan 29 15:11:56 acsvfbsd02 sm-mta[703]: k0TEBtog000702: done;
delay=00:00:00, ntries=1
I also tested /parse in sendmail -bt with a local address
(mar...@acutronic.ch) and an external address (in...@pc-service.ch). In
the first case sendmail did not use cyrusv2 as I excepted. I see this
strange problem on different machines. Any hints are welcome.
> /parse in...@pc-service.ch
Cracked address = $g
Parsing envelope recipient address
canonify input: info @ pc-service . ch
Canonify2 input: info < @ pc-service . ch >
Canonify2 returns: info < @ pc-service . ch . >
canonify returns: info < @ pc-service . ch . >
parse input: info < @ pc-service . ch . >
Parse0 input: info < @ pc-service . ch . >
Parse0 returns: info < @ pc-service . ch . >
ParseLocal input: info < @ pc-service . ch . >
ParseLocal returns: info < @ pc-service . ch . >
Parse1 input: info < @ pc-service . ch . >
Mailertable input: < pc-service . ch > info < @ pc-service . ch
. >
Mailertable input: pc-service . < ch > info < @ pc-service . ch
. >
Mailertable returns: info < @ pc-service . ch . >
Mailertable returns: info < @ pc-service . ch . >
MailerToTriple input: < > info < @ pc-service . ch . >
MailerToTriple returns: info < @ pc-service . ch . >
Parse1 returns: $# esmtp $@ pc-service . ch . $: info < @
pc-service . ch . >
parse returns: $# esmtp $@ pc-service . ch . $: info < @
pc-service . ch . >
2 input: info < @ pc-service . ch . >
2 returns: info < @ pc-service . ch . >
EnvToSMTP input: info < @ pc-service . ch . >
PseudoToReal input: info < @ pc-service . ch . >
PseudoToReal returns: info < @ pc-service . ch . >
MasqSMTP input: info < @ pc-service . ch . >
MasqSMTP returns: info < @ pc-service . ch . >
EnvToSMTP returns: info < @ pc-service . ch . >
final input: info < @ pc-service . ch . >
final returns: info @ pc-service . ch
mailer esmtp, host pc-service.ch., user in...@pc-service.ch
> /parse mar...@acutronic.ch
Cracked address = $g
Parsing envelope recipient address
canonify input: martin @ acutronic . ch
Canonify2 input: martin < @ acutronic . ch >
Canonify2 returns: martin < @ acutronic . ch . >
canonify returns: martin < @ acutronic . ch . >
parse input: martin < @ acutronic . ch . >
Parse0 input: martin < @ acutronic . ch . >
Parse0 returns: martin < @ acutronic . ch . >
ParseLocal input: martin < @ acutronic . ch . >
ParseLocal returns: martin < @ acutronic . ch . >
Parse1 input: martin < @ acutronic . ch . >
Parse1 returns: $# local $: martin
parse returns: $# local $: martin
2 input: martin
2 returns: martin
EnvToL input: martin
EnvToL returns: martin
final input: martin
final returns: martin
mailer local, user martin
Regards,
Martin