Re: imapd 2.5.7-8 with virtual domains and sendmail config

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

 




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

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

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
joe@xxxxxxxxxxx but the @example.com get stripped off, and servers
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

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

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux