2016-06-13 21:36 GMT+07:00 Stefan Suurmeijer <stefan@xxxxxxxxxxxx>:
On 06/13/2016 03:07 PM, Mogens Melander wrote:
> Stefan,
>
> Thanks for your suggestion.
>
> The virtusertable is actually being used in my config. I think my
> problem is in the cyrusv2 definition.
I know. What I meant was that it looked like it wasn't processed correctly.
Meanwhile I've found out that for me that happened because I forgot to
add the test domain to local-host-names. Correcting that fixed my
problem. With almost the same config your setup is now working for me.
I have example.com in local-host-names and FEATURE(`use_cw_file') in
the .mc file. That's not it.
So it's interesting to see where your config differs from mine:
I have
Mcyrusv2, P=[IPC], F=lsDFMnqXzA@/:|m,
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP
T=DNS/RFC822/SMTP,
A=FILE /var/lib/imap/socket/lmtp
I got my lmtp socket in /var/imap/socket which I believe is the standard.
The Cyrus V2 Mailer specification from cyrusv2.m4 look like this:
Mcyrusv2, P=[IPC], F=lsDFMnqXzA@/:|m,
S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL, E=\r\n,
T=DNS/RFC822/SMTP,
A=FILE /var/imap/socket/lmtp
Mcyrusv2, P=[IPC], F=lsDFMnqXzA@/:|m,
S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL, E=\r\n,
T=DNS/RFC822/SMTP,
A=FILE /var/imap/socket/lmtp
And the same from my cyrusv2.mc file:
Mcyrusv2, P=[IPC], F=lsDFMnqXzA@/:|m,
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
T=DNS/RFC822/SMTP,
A=FILE /var/imap/socket/lmtp
Mcyrusv2, P=[IPC], F=lsDFMnqXzA@/:|m,
S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP,
T=DNS/RFC822/SMTP,
A=FILE /var/imap/socket/lmtp
I took the E= out for now, as it doesn't seem to do anything.
So the same except for the E= item (I think that's to add > to quoted
messages?).
The > quote thingy is done by the MUA. In my case SqirrelMail.
I'm not sure about what the E=\r\n but it was something about default line endings,
witch later was changed to LF (\n) as default.
The last time I was fighting with issues like this it was because of the
mailer definition. What happens if you remove the E= portion?
I do understand correctly that the bottom mailer definition is the one
you're using, right?
Both definitions end up in sendmail.cf, with the one from .m4 first, followed
by the one from .mc immediately after.
I'm also assuming the
# Virtual user table (maps incoming users)
Kvirtuser hash -o /etc/mail/virtusertable
class is present in your sendmail.cf?
Yes, it's in there.
I use
testdomain.nl cyrusv2:/var/imap/socket/lmtp
in mailertable
Anything that you have different?
Well. I'm not using mailertable. I want to use the virtuser function, to forward
specific addresses to users on other servers.
When sending an mail to domain@xxxxxxxxxxx I know it's translated to
host.domain.tld added. From imap logfile:
master[22245]: about to exec /usr/cyrus/bin/lmtpd
lmtpunix[22245]: SQL backend defaulting to engine 'mysql'
lmtpunix[22245]: executed
lmtpunix[22245]: accepted connection
lmtpunix[22245]: connection from [unix socket] preauth'd as postman
lmtpunix[22245]: verify_user(slack-14-1.fumlersoft.dk!user.joe) failed: Mailbox does not exist
# sendmail -bv domain@xxxxxxxxxxx
domain@xxxxxxxxxxx... deliverable: mailer cyrusv2, user joe@xxxxxxxxxxxxxxxxxxxxxxxx
# echo "3,0 domain@xxxxxxxxxxx" | sendmail -v -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 domain@xxxxxxxxxxx
canonify input: domain @ example . com
Canonify2 input: domain < @ example . com >
Canonify2 returns: domain < @ example . com . >
canonify returns: domain < @ example . com . >
parse input: domain < @ example . com . >
Parse0 input: domain < @ example . com . >
Parse0 returns: domain < @ example . com . >
ParseLocal input: domain < @ example . com . >
ParseLocal returns: domain < @ example . com . >
Parse1 input: domain < @ example . com . >
Recurse input: joe @ example . com
canonify input: joe @ example . com
Canonify2 input: joe < @ example . com >
Canonify2 returns: joe < @ example . com . >
canonify returns: joe < @ example . com . >
parse input: joe < @ example . com . >
Parse0 input: joe < @ example . com . >
Parse0 returns: joe < @ example . com . >
ParseLocal input: joe < @ example . com . >
ParseLocal returns: joe < @ example . com . >
Parse1 input: joe < @ example . com . >
Parse1 returns: $# cyrusv2 $: joe
parse returns: $# cyrusv2 $: joe
Recurse returns: $# cyrusv2 $: joe
Parse1 returns: $# cyrusv2 $: joe
parse returns: $# cyrusv2 $: joe
master[22245]: about to exec /usr/cyrus/bin/lmtpd
lmtpunix[22245]: SQL backend defaulting to engine 'mysql'
lmtpunix[22245]: executed
lmtpunix[22245]: accepted connection
lmtpunix[22245]: connection from [unix socket] preauth'd as postman
lmtpunix[22245]: verify_user(slack-14-1.fumlersoft.dk!user.joe) failed: Mailbox does not exist
# sendmail -bv domain@xxxxxxxxxxx
domain@xxxxxxxxxxx... deliverable: mailer cyrusv2, user joe@xxxxxxxxxxxxxxxxxxxxxxxx
# echo "3,0 domain@xxxxxxxxxxx" | sendmail -v -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 domain@xxxxxxxxxxx
canonify input: domain @ example . com
Canonify2 input: domain < @ example . com >
Canonify2 returns: domain < @ example . com . >
canonify returns: domain < @ example . com . >
parse input: domain < @ example . com . >
Parse0 input: domain < @ example . com . >
Parse0 returns: domain < @ example . com . >
ParseLocal input: domain < @ example . com . >
ParseLocal returns: domain < @ example . com . >
Parse1 input: domain < @ example . com . >
Recurse input: joe @ example . com
canonify input: joe @ example . com
Canonify2 input: joe < @ example . com >
Canonify2 returns: joe < @ example . com . >
canonify returns: joe < @ example . com . >
parse input: joe < @ example . com . >
Parse0 input: joe < @ example . com . >
Parse0 returns: joe < @ example . com . >
ParseLocal input: joe < @ example . com . >
ParseLocal returns: joe < @ example . com . >
Parse1 input: joe < @ example . com . >
Parse1 returns: $# cyrusv2 $: joe
parse returns: $# cyrusv2 $: joe
Recurse returns: $# cyrusv2 $: joe
Parse1 returns: $# cyrusv2 $: joe
parse returns: $# cyrusv2 $: joe
Weird. I'm still clueless.
Mogens
---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/ To Unsubscribe: https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus