I am using Fedora 14.
I setup my mail server with dovecot so I am now able to access my host for email from other hosts within my local net. It's been very helpful to have that.
While I was able to add a dovecot mailer to the sendmail.cf file I was never able to make it the local mailer. In the end I had to create a .forward file and pipe the message through dovecot-lda. However, with this limitation it only works for real user's with home directories that would have a .forward file.
Are there any good pointers that could give me the necessary details to run dovecot-lda as the local mailer from sendmail which should be able to allow me to support virtual mail users that don't have a home directory with a .forward file ?
A few weeks ago I played with this quite a bit, but never got the sendmail.cf file quite right to use dovcot-lda as the local mailer.
Also, I have sieve enabled in dovecot. Right now I have evolution up and running on one machine all the time that does the filtering of incoming messages into their folders. The rest of the machines don't apply any filters. I'd like to generate a sieve file so that dovecot-lda does the filtering when the email initially comes in. But, I don't want to have to login to one specific machine and edit the sieve instructions every time I want to make a change.
So, I have manage sieve enabled, but as far as I can tell evolution doesn't have a manage sieve client. I played with thunderbird a bit and it seems it has a sieve extension that will access the manage sieve tool to imap. But, I'd like to stick with evolution.
Is there an evolution plugin that will allow client access to manage sieve from evolution ?
Thanks Chris Kottaridis
On Wed, 2011-07-20 at 16:43 -0600, Chris Kottaridis wrote:
I am using Fedora 14.
I setup my mail server with dovecot so I am now able to access my host for email from other hosts within my local net. It's been very helpful to have that.
While I was able to add a dovecot mailer to the sendmail.cf file I was never able to make it the local mailer. In the end I had to create a .forward file and pipe the message through dovecot-lda. However, with this limitation it only works for real user's with home directories that would have a .forward file.
Are there any good pointers that could give me the necessary details to run dovecot-lda as the local mailer from sendmail which should be able to allow me to support virtual mail users that don't have a home directory with a .forward file ?
A few weeks ago I played with this quite a bit, but never got the sendmail.cf file quite right to use dovcot-lda as the local mailer.
Also, I have sieve enabled in dovecot. Right now I have evolution up and running on one machine all the time that does the filtering of incoming messages into their folders. The rest of the machines don't apply any filters. I'd like to generate a sieve file so that dovecot-lda does the filtering when the email initially comes in. But, I don't want to have to login to one specific machine and edit the sieve instructions every time I want to make a change.
So, I have manage sieve enabled, but as far as I can tell evolution doesn't have a manage sieve client. I played with thunderbird a bit and it seems it has a sieve extension that will access the manage sieve tool to imap. But, I'd like to stick with evolution.
Is there an evolution plugin that will allow client access to manage sieve from evolution ?
Not as far as I know. It's been requested more than once but there doesn't seem to be enough interest to get someone to work on it, which is a pity. Perhaps if more IMAP servers supported it that would change, but it's a chicken and egg situation.
poc
Once upon a time, Chris Kottaridis chriskot@quietwind.net said:
While I was able to add a dovecot mailer to the sendmail.cf file I was never able to make it the local mailer.
Dovecot's deliver acts similar to procmail, so I use it with the following in my .mc:
FEATURE(`local_procmail',`/usr/libexec/dovecot/deliver',`deliver -e -d $u -a $u+$h@$j') define(`LOCAL_MAILER_FLAGS',LOCAL_MAILER_FLAGS`Ep') MAILER(local)
Although I have sieve and managesieve enabled, I haven't actually done anything with it. If you install Horde+IMP+Ingo, you can configure Ingo to use sieve (again, I haven't tried it myself). I think there's also a Thunderbird add-on for managesieve.
On Wed, 2011-07-20 at 20:39 -0500, Chris Adams wrote:
Dovecot's deliver acts similar to procmail, so I use it with the following in my .mc:
FEATURE(`local_procmail',`/usr/libexec/dovecot/deliver',`deliver -e -d $u -a $u+$h@$j') define(`LOCAL_MAILER_FLAGS',LOCAL_MAILER_FLAGS`Ep') MAILER(local)
OK that worked. Thanks. I was approaching this completely wrong. I reread the sendmail README and see the reference to this. Not sure how I missed it before.
Now that dovecot-lda is delivering mail I changed the mail home directory by modifying the auth-system.conf.ext file's userdb:
# System users (NSS, /etc/passwd, or similiar). In many systems nowadays this # uses Name Service Switch, which is configured in /etc/nsswitch.conf. userdb { # <doc/wiki/AuthDatabase.Passwd.txt> driver = passwd # [blocking=no] args = uid=vmail gid=vmail home=/var/vmail/%d/%n #args = }
I added the args line. I created /var/vmail owned by vmail:vmail and sent an email and it populated /var/vmail.
Yay!
However, it created a
/var/vmail/chrisk/Maildir
I was expecting
/var/vmail/<domain>/Maildir
where <domain> would be $j from sendmail, which I would have assumed was my hostname.
From the sendmail README $j should be:
Normally, the $j macro is automatically defined to be your fully qualified domain name (FQDN). Sendmail does this by getting your host name using gethostname and then calling gethostbyname on the result.
So, I am a little confused why the directory created is /var/vmail/chrisk/Maildir rather then /var/vmail/<hostname>/chrisk/Maildir. Since dovecot-lda gets -a $u+$h@$j. I would have expected %d to be $j and %n to be $u:
From 10-mail.conf # There are a few special variables you can use, eg.: # # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if there's no domain # %h - home directory
Does that mena that sendmail is not passing $j ?
Truth be told what I'd like the %d to be the domain name portion that the email was sent to. So, if this host is a mailhost for multiple domains I could have users in different domains with the same username.
But I am not sure what sendmail variable that would be rather then $j. But, since $j seems to be ignored or not getting initialized, it makes me wonder if I can do what I'd like to do.
Anyway, thanks this has gotten me past my initial hurdle and I am functional for what I currently need to do.
Thanks Chris Kottaridis
Although I have sieve and managesieve enabled, I haven't actually done anything with it. If you install Horde+IMP+Ingo, you can configure Ingo to use sieve (again, I haven't tried it myself). I think there's also a Thunderbird add-on for managesieve.
-- Chris Adams cmadams@hiwaay.net Systems and Network Administrator - HiWAAY Internet Services I don't speak for anybody but myself - that's enough trouble.
Once upon a time, Chris Kottaridis chriskot@quietwind.net said:
I was expecting
/var/vmail/<domain>/Maildir
where <domain> would be $j from sendmail, which I would have assumed was my hostname.
The issue may be on the Dovecot side; my example included both "-d $u" and "-a $u+$h@$j" args to deliver, and I think Dovecot may be using the -d arg instead of the -a arg for figuring the %u/%n/%d fields. IIRC I added the -a for Sieve processing (to get the +plus part of the address).
Another way of handling it would be to setup a custom sendmail ruleset for envelope recipient address rewriting. The default EnvToL strips off the domain; something like (mostly copied from EnvToL, untested of course):
LOCAL_RULESETS SEnvToL R$+ < @ $+ > $: $1 @ $2 R$+ < @ $* > $: $1 @ $&m R$+ + $* $: < $&{addr_type} > $1 + $2 R<e s> $+ + $* $: $1 R< $* > $+ $: $2
This would affect other mailers that use this ruleset of course (prog is the only other by default).
On Fri, 2011-07-22 at 11:41 -0500, Chris Adams wrote:
Once upon a time, Chris Kottaridis chriskot@quietwind.net said:
I was expecting
/var/vmail/<domain>/Maildir
where <domain> would be $j from sendmail, which I would have assumed was my hostname.
The issue may be on the Dovecot side; my example included both "-d $u" and "-a $u+$h@$j" args to deliver, and I think Dovecot may be using the -d arg instead of the -a arg for figuring the %u/%n/%d fields. IIRC I added the -a for Sieve processing (to get the +plus part of the address).
Yeah, I thought that as well, and I think I tried that with no difference, but I'll try it again to make sure.
Another way of handling it would be to setup a custom sendmail ruleset for envelope recipient address rewriting. The default EnvToL strips off the domain; something like (mostly copied from EnvToL, untested of course):
LOCAL_RULESETS SEnvToL R$+ < @ $+ > $: $1 @ $2 R$+ < @ $* > $: $1 @ $&m R$+ + $* $: < $&{addr_type} > $1 + $2 R<e s> $+ + $* $: $1 R< $* > $+ $: $2
This would affect other mailers that use this ruleset of course (prog is the only other by default).
Yeah, I was wondering if there was another sendmail macro that represents the domain of the To address that made it conclude it belonged to this machine. But maybe there isn't.
I want to be careful about dinking with rules. That was what I originally tried. What I wanted was some users to use dovecot-lda for delivery and others to use the standard mailer. For example I really want root to still go to /var/mail as well as other non-real users. So, I added the dovecot mailer and was dinking with rules sets to have root to use local mailer and other users resolve to dovecot mailer. I got quite entangled in the whole thing. I was close but couldn't quite get there. For now I am content with root ending up in /var/vmail.
Thanks for the help and the suggestions.
Thanks Chris Kottaridis
-- Chris Adams cmadams@hiwaay.net Systems and Network Administrator - HiWAAY Internet Services I don't speak for anybody but myself - that's enough trouble.
Once upon a time, Chris Kottaridis chriskot@quietwind.net said:
I want to be careful about dinking with rules. That was what I originally tried. What I wanted was some users to use dovecot-lda for delivery and others to use the standard mailer. For example I really want root to still go to /var/mail as well as other non-real users. So, I added the dovecot mailer and was dinking with rules sets to have root to use local mailer and other users resolve to dovecot mailer. I got quite entangled in the whole thing. I was close but couldn't quite get there. For now I am content with root ending up in /var/vmail.
Yeah, that can get tricky, and requires a fair bit of sendmail knowledge to do right. I have a setup where the default local mailer is dovecot, but users can choose to get procmail (all mail is delivered to users with system accounts); the choice is stored in a custom field in an LDAP directory. Since I haven't really tested and pushed sieve use yet, the only server-side filtering is via procmail.
Of course, I've been writing sendmail rulesets for about 15 years now, so it's second nature to me. sendmail.cf really isn't just line noise! :-)
Yeah, 10 years ago I was probably modifying or instructing others how to modify sendmail.cf rulesets on a weekly basis. But, I haven't done that for a while so I am a bit rusty and apparently not determined enough this time around to push it through. I can live with what I have for now. I may come back to it if I get more determined.
Again thanks
Thanks Chris Kottaridis
On Sat, 2011-07-23 at 02:37 -0500, Chris Adams wrote:
Once upon a time, Chris Kottaridis chriskot@quietwind.net said:
I want to be careful about dinking with rules. That was what I originally tried. What I wanted was some users to use dovecot-lda for delivery and others to use the standard mailer. For example I really want root to still go to /var/mail as well as other non-real users. So, I added the dovecot mailer and was dinking with rules sets to have root to use local mailer and other users resolve to dovecot mailer. I got quite entangled in the whole thing. I was close but couldn't quite get there. For now I am content with root ending up in /var/vmail.
Yeah, that can get tricky, and requires a fair bit of sendmail knowledge to do right. I have a setup where the default local mailer is dovecot, but users can choose to get procmail (all mail is delivered to users with system accounts); the choice is stored in a custom field in an LDAP directory. Since I haven't really tested and pushed sieve use yet, the only server-side filtering is via procmail.
Of course, I've been writing sendmail rulesets for about 15 years now, so it's second nature to me. sendmail.cf really isn't just line noise! :-)
-- Chris Adams cmadams@hiwaay.net Systems and Network Administrator - HiWAAY Internet Services I don't speak for anybody but myself - that's enough trouble.