[Dovecot] Dovecot Virtual Users with Sendmail

Ken A
2012-12-31T19:14:49Z

Dovecot has no problem with virtual users, but Sendmail's idea of
virtual users is not quite as 'virtual'.

One possible solution: http://www.cs.fsu.edu/~langley/USVH-tr.pdf
That was 2007.. so perhaps somebody has written this up in a more
concise way..

or you can wrestle with ldap. :-(

or switch MTAs.

Ken A.

On 12/30/2012 9:19 PM, DormitionSkete at hotmail.com
wrote:
> I'm trying to get Dovecot working with Virtual Users and Sendmail on
OpenIndiana 151a7.  OpenIndiana is the Open Source continuation of OpenSolaris
after Oracle tried to kill it off a couple of years ago shortly after acquiring
Sun Microsystems.
>
> I'm not sure if this is so much a Dovecot problem, as much of a
Sendmail problem.  I thought this would probably be a better list to start with,
though.  If not, please let me know.
>
> I initially used this Dovecot wiki page to approach this:
> Simple Virtual User Installation
>
> http://wiki2.dovecot.org/HowTo/SimpleVirtualInstall
>
> I had to make few minor changes, but I don't think anything significant
to the problem I'm having.
>
> I can log into SquirrelMail with both virtual users, and with system users.
>
> I can send mail to system users from both virtual and system users.
>
> I can see the mail that I sent in the Sent Messages folder for both types
of users.
>
> I just can't send mail to virtual users.  When I try to, I get the
following message:
>
> ERROR:
> Message not sent. Server replied:
> Requested action not taken: mailbox unavailable
> 550 5.1.1 <dswebstore at localhost>... User unknown
> My configuration info is as follows:
>
> systemuser at openindiana:~# /usr/local/sbin/dovecot --version
> 2.1.12
>
> systemuser at openindiana:~# /usr/local/sbin/dovecot -n
> # 2.1.12: /usr/local/etc/dovecot/dovecot.conf
> # OS: SunOS 5.11 i86pc
> auth_verbose = yes
> base_dir = /var/run/dovecot/
> disable_plaintext_auth = no
> first_valid_uid = 101
> info_log_path = /var/log/dovecot-info.log
> log_path = /var/log/dovecot.log
> mail_location = mbox:/home/vmail/%u/mail:INBOX=/var/mail/%u
> passdb {
>   args = /usr/local/etc/dovecot/passwd
>   driver = passwd-file
> }
> pop3_uidl_format = %g
> protocols = imap pop3
> service auth {
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0600
>     user = vmail
>   }
> }
> ssl = no
> userdb {
>   args = uid=vmail gid=vmail home=/home/vmail/%u
>   driver = static
> }
> protocol lda {
>   postmaster_address = systemuser at localhost
> }
>
> ---
>
> My dovecot password file looks something like this, though changed for
obvious security reasons:
>
> systemuser:{PLAIN} systemuserPASS
> virtualuser1:{PLAIN}virtualuser1PASS
> virtualuser2:{PLAIN}virtualuser2PASS
>
>
> ---
>
> I read on this page that I needed to put the following in my sendmail
dovecot.m4 file:
>
> Dovecot LDA with Sendmail
> http://wiki2.dovecot.org/LDA/Sendmail
>
> So this is my dovecot.m4 file, which shows up in my sendmail.cf file after
recompiling my sendmail.mc file.
>
> ######################*****##############
> ###   DOVECOT Mailer specification                              ###
> ##################*****##################
> Mdovecot,   P=/usr/local/libexec/dovecot/dovecot-lda, F=DFMPhnu9,
>                  S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
>                  T=DNS/RFC822/X-Unix,
>                  A=/usr/local/libexec/dovecot/dovecot-lda -d $u
>
>
> ---
>
> Finally, this is my sendmail.mc file:
>
> divert(-1)
> #
> # Copyright (c) 1983 Eric P. Allman
> # Copyright (c) 1988, 1993
> #	The Regents of the University of California.  All rights reserved.
> #
> # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
> # Use is subject to license terms.
> #
> #  This is a configuration file for SunOS 5.8 (a.k.a. Solaris 8) and later
> #  subsidiary machines.  It has support for local and SMTP mail.  The
> #  confFALLBACK_SMARTHOST macro is enabled, which means that messages will
> #  be sent to that host (which is set to mailhost.$m [$m is the local
domain])
> #  if MX records are unavailable.  A short-cut rule is also defined, which
> #  says if the recipient host is in the local domain, send to it directly
> #  instead of the smart host.
> #
> #  If you want to customize this further, copy it to a name appropriate
> #  for your environment and do the modifications there.
> #
>
> divert(0)dnl
> VERSIONID(`sendmail.mc (Sun)')
> OSTYPE(`solaris8')dnl
> DOMAIN(`solaris-generic')dnl
> define(`confFALLBACK_SMARTHOST', `mailhost$?m.$m$.')dnl
>
> define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
> FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
>
> MAILER(`local')dnl
> MAILER(`smtp')dnl
>
> MAILER(`procmail')dnl
> MAILER(`dovecot')dnl
>
>
> LOCAL_NET_CONFIG
> R$* < @ $* .$m. > $*	$#esmtp $@ $2.$m $: $1 < @ $2.$m. > $3
>
>
> ---
>
> I think it is obvious that it is a problem with Sendmail not recognizing
Dovecot's virtual users.  But how do I fix it?
>
> If anyone could help me with this, I would *greatly* appreciate it.
I've been picking away at this for about three weeks now, and I'm pretty
much out of ideas of anything else to try.
>
> Cordially,
>
> Peter, hieromonk
>
> ----
> Dormition Skete
>  Monastery Website:  http://www.DormitionSkete.org
>  Convent Website:  http://www.HolyApostlesConvent.org
> ----
>
>
>
>
>
>
>
>
>
>
>

--
Ken Anderson
Pacific Internet - http://www.pacific.net
Latest Pacific.Net Status - http://twitter.com/pacnetstatus