Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Can not deliver to cyrus imapd

18 views
Skip to first unread message

schweize...@gmail.com

unread,
Jan 25, 2006, 3:58:18 PM1/25/06
to
Hello

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

Andrzej Adam Filip

unread,
Jan 26, 2006, 4:17:00 AM1/26/06
to
schweize...@gmail.com writes:

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

schweize...@gmail.com

unread,
Jan 26, 2006, 4:42:19 AM1/26/06
to
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

> 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

Rob MacGregor

unread,
Jan 27, 2006, 3:01:03 PM1/27/06
to
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?

--
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?

Andrzej Adam Filip

unread,
Jan 27, 2006, 3:24:02 PM1/27/06
to
schweize...@gmail.com writes:

> 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.

Netcraft Site Rank: 530672

Andrzej Adam Filip

unread,
Jan 27, 2006, 3:24:47 PM1/27/06
to
Rob MacGregor <m...@privacy.net> writes:

> 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.

Netcraft Site Rank: 530672

schweize...@gmail.com

unread,
Jan 29, 2006, 10:41:37 AM1/29/06
to
Hello

> 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

0 new messages