sendmail not invoking dovecot-lda

alvin alvin.sm at Mail.Linux-Consulting.com
Sun Jan 18 19:48:36 UTC 2015


hi dovecot mailinglist 

- Configuration
    FreeBSD-9.3
    sendmail -d0.1	== sendmail-8.14.9	<<--
    dovecot --version	== dovecot-2.2.15

# ===================================================================
# I'm trying to get sendmail to invoke dovecot.m4 ( dovecot-lda ) to
# deliver emails to dovecot's virtual users ( /etc/dovecot/passwd ) 
# or mysql/postgresql virtual users
#
#
# sendmail -bv dovecot.VirtualUser at localhost  --> returns "User Unknown"
#
# cat test.msg.txt | dovecot-lda -d  dovecot.VirtualUser  ===> works
#	email is delivered to dovecot.VirtualUser inbox
#
# ===================================================================

- there are tons of howto and comments for dovecot + postfix
  and very little for dovecot + sendmail ... therefore, it'd be 
  great if we/i can get this dovecot.m4 problem resolved

------------------------------------------------------------------------------
- status of what works and what does NOT work while testing dovecot's LDA ...
------------------------------------------------------------------------------
	#
	# fyi.. recepient user is in the form of user, user at localhost and user at domain.com
	#
	sendmail -bv user.in/etc/passwd			= deliverable
	sendmail -bv user.in/etc/mail/virtusertable	= deliverable to sendmail virtual user

-->>	sendmail -bv dovecot.user.in/dovecot/virtual.passwd.file	== user unknown

	dovecot user user.in/etc/passwd	== returns UID/GID/home/mailbox ( deliverable )
	dovecot user dovecot.user	== returns UID/GID/home/mailbox ( deliverable )


	# --------------------------------------------------------------------
	# dovecot's LDA delivers the test email to the dovecot/mysql recepient
	# --------------------------------------------------------------------
	cat test-email-with-headers.txt | dovecot-lda -d dovecot.user	( email delivered )

	
	# ----------------------------------------------------------------
-->>	# mail/mutt/sendmail canNOT deliver to dovecot recepient == FAILS
	# ----------------------------------------------------------------
-->>	sendmail -bv dovecot.user.in/dovecot/virtual.passwd.file	== user unknown
	3
	echo "testing mail to dovecot" | mail -v -s "testing mail to dovecot" doveccot.user
		== user unknown ==

-------------------------------------------------------
- my (relevant to dovecot ) sendmail.mc file looks like:
-------------------------------------------------------

	dnl #
	dnl # local mail delivery
	dnl #
	define(`PROCMAIL_MAILER_PATH', `/usr/local/bin/procmail')dnl

	FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl 

	dnl #
	dnl # I'm trying to get sendmail to use dovecot.m4 to deliver local mail
	dnl # to dovecot's LDA ( dovecot-lda ) for mysql virtual users
	dnl #
	dnl uncomment and use either feature(...dovecot-lda) or mailer(dovecot.m4)
	dnl
	dnl FEATURE(`local_procmail', `/usr/local/libexec/dovecot/dovecot-lda',`/usr/local/libexec/dovecot/dovecot-lda -d $u')
	dnl

	MAILER(local)
	MAILER(smtp)
	dnl
	dnl MAILER(dovecot)dnl	# did NOT work either
	dnl
	dnl # trying to use procmail to deliver local mail to system users ( /etc/passwd )
	MAILER(procmail)
	dnl
	dnl # is the ordering of dovecot.m4 important relative to (local) and (procmail)
	dnl
	dnl # trying to use dovecot-lda to deliver email to dovecot's virtual users 
	dnl # defined in /etc/dovecot/password
	dnl
	MAILER(dovecot)dnl	# see below
	dnl
	dnl End of File

-------------------------------------------------------
- my (relevant to dovecot ) sendmail.cf file looks like:
-------------------------------------------------------

	# 
	# lots of deleted ... ??not?? important until Mlocal  ---> MAILER(local)
	#

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

	# 
	# lots of deleted ... ??not?? important until procmail stuff ---> MAILER(procmail)
	#

######################*****##############
###   PROCMAIL Mailer specification   ###
##################*****##################
#####  $Id: procmail.m4,v 8.23 2013-11-22 20:51:14 ca Exp $  #####

Mprocmail,      P=/usr/local/bin/procmail, F=DFMSPhnu9, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFr
omSMTP,
                T=DNS/RFC822/X-Unix,
                A=procmail -Y -m $h $f $u

######################*****#########################
###                                              ###
###  10-Jan-15 amo Dovecot.m4                    ###
###                                              ###
###  dovecot.m4 stuff                            ###
###                                              ###
##############################*****#################
Mdovecot, P=/usr/local/libexec/dovecot/dovecot-lda, F=DFMPhnu9,
          S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
          T=DNS/RFC822/X-Unix,
          A=/usr/local/libexec/dovecot/dovecot-lda -d $u
#
# End of sendmail.cf


=====================================================================
- dovecot has an example dovecot.m4 ... but it doesn't allow sendmail
  to call dovecot to deliver local mail with dovecot-lda 
=====================================================================

    http://wiki2.dovecot.org/LDA/Sendmail

    #########################################
    ###   DOVECOT Mailer specification    ###
    #########################################
    #                                       #
    # dovecot virtual users defined in: /etc/dovecot/password #
    #                                       #
    #  cp /etc/mail/dovecot.m4  /usr/share/sendmail/cf/mailer #
    #                                       #
    #  cd /etc/mail && make                 #
    #  /etc/rc.d/sendmail restart           #
    #                                       #
    # the dovecot.m4 stanza are in the resulting sendmail.cf  #
    #                                       #
    #########################################
    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
    #
    # i've tried using these other options in lieu of the above :
    #
    #	F=DFMPShnu9			# added "S" option
    #	F=lsDFMAw5:/|@qSPfhn9,
    #
    #	S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
    #   #
    #	# tried adding U= between S= and T= lines
    #	U=root:mail	U=dovecot:mail	U=dovenull:mail
    #
    # End of dovecot.m4
	
    http://wiki2.dovecot.org/LDA/Sendmail
    also states that one could use these 3 statements in lieu of dovecot.m4

	#
	# this replaces sendmail.cf Mlocal P=mail.local with P=dovecot-lda
	#
	FEATURE(`local_procmail', `/usr/local/libexec/dovecot/dovecot-lda',  \
		`/usr/local/libexec/dovecot/dovecot-lda -d $u')
	dnl MODIFY_MAILER_FLAGS(`LOCAL', `-f')
	MAILER(procmail)

    vi /etc/mail/mailertable
	#
	# cd /etc/mail && make && /etc/rc.d/sendmail restart
	#
	# make and restart sendmail after editing
	#
	virtualdomain.example.com vmail:vmail

	# other options where sendmail still wasn't able to execute dovecot-lda
	# virtualdomain.example.com dovecot:local
	# virtualdomain.example.com local:mail
	# virtualdomain.example.com root:mail

------------------------------------
- my relevant dovecot config options
------------------------------------
	#
	# are there any other major options i'm missing in the dovecot config files
	#
    doveconf
    dovecot -a 
	#
	# for /etc/passwd
	passdb {
 	  args = 
 	  driver = pam
	  ..
	}
	#
	# ------------------------------------------------------------------------
	# need to get these dovecot's virtual users to be able send/receive emails
	# ------------------------------------------------------------------------
	#	sendmail -bv dovecot.VirtualUser at localhost
	#		dovecot.VirtuaUser at localhost... User unknown
	#
	passdb {
	  args = /etc/dovecot/passwd
		#
		# dovecot.VirtualUser:{PLAIN}password:::::
		#
		# end of file
 	  driver = passwd-file
	  ..
	}
	#
	passdb {
	  args = /etc/dovecot/dovecot-sql.conf.ext
	  driver = sql
	  ..
	}
	...
	...
	...
	userdb {
	  args = 
	  driver = passwd
	  ..
	}
	#
	userdb {
	  args = /etc/dovecot/password
	  driver = passwd-file
	  ..
	}
	#
	userdb {
  	  args = /etc/dovecot/dovecot-sql.conf.ext
  	  driver = sql
	  ..
	}

#
# ---------------------------------------------------------------------
# -- How do i get sendmail to execute dovecot-lda for incoming emails 
# -- directed to dovecot virtual users and/or mysql users ??
# ---------------------------------------------------------------------
#
# end of txt


More information about the dovecot mailing list