hi steffen
- thanx for your reply
sendmail-8.15.1 + dovecot-2.2.15 + OpenSSL is working ..
my sendmail is also configured for smtp-auth and saslauth and seems to work with dovecot
one other thing to note, sendmail requires CA signed *.pem certs vs self-signed ... in my case, dovecot uses the same *.pem certs
http://www.sendmail.org/~ca/email/other/cagreg.html
# # ================ # # testing dovecot to fetch the emails # # ================ # # dovecot.user is only defined in /etc/dovecot/passwd # # echo "test mail" | mail -v dovecot.user@vmail.example.com # echo "test mutt" | mutt -s mutt dovecot.user@vmail.example.com # # echo "sendmail" | sendmail -d60.5 -d27.2 -bv dovecot.user@vmail.example.com # # telnet vmail.example.com 110 # openssl s_client -connect vmail.example.com:995 # pop3s # user dovecot.user # pass passwd # list # retr 1 # quit # # telnet vmail.example.com 143 # openssl s_client -connect vmail.example.com:993 # imaps # a1 login dovecot.user passwd # a2 LIST "" "*" # a3 select INBOX # a4 FETCH 1 BODY[] # a5 logout # # # replace gmail.com with your ssl-enabled dovecot server # openssl s_client -connect pop.gmail.com:995 -showcerts # openssl s_client -connect imap.gmail.com:993 -showcerts # # # replace gmail.com with your SASL enabled STMPT server # openssl s_client -connect smtp.gmail.com:587 -starttls smtp #
On Sun, 18 Jan 2015, alvin wrote:
- status of what works and what does NOT work while testing dovecot's LDA ...
# # fyi.. recepient user is in the form of user, user@localhost and user@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
- is the virtual domain a local name? http://compgroups.net/comp.mail.sendmail/sendmail-dovecot-mailertable-and-pa... http://www.dovecot.org/list/dovecot/2010-June/049500.html
it turns out, the hostname must NOT be listed in /etc/mail/local-host-names and that it still must resolve ( /etc/hosts )
- your mailer is named "dovecot", therefore the mailertable entry in the Wiki:
virtualdomain.example.com vmail:vmail
and again, virtualdomain -- should NOT be listed in /etc/mail/local-host-names
- when i removed it from local-host-names, things started be more debuggable and fixed
yup
virtualdomain.example.com dovecot:dovecot (2nd dovecot has no meaning, but there must be present something)
yup
- Post a sensable output: echo '3,0 dovecotuser@dovecot.domain' | sendmail -bt -d21.4
it's working ... other sendmail tests ...
# sendmail -d60.5 -d27.2 -bv dovecot.user # dovecot.user... User unknown # # sendmail -d60.5 -d27.2 -bv dovecot.user@fake # dovecot.yser@fake... deliverable: mailer esmtp, host fake, user dovecot.plain@fake # # sendmail -d60.5 -d27.2 -bv dovecot.user # # -d60.5 should trace map lookups (including mailertable) # # -d27.2 should trace alias expansion # # echo '3,0 dovecot.user@localhost ' | sendmail -bt -d21.12 -d60.5 # # -d60.5 tracking maps (virtusertable) lookups # # -d21.12 tracking processing of R lines in sendmail.cf # # sendmail -d27.2 -bv dovecot.user # # -d27.2 tracking processing of aliases # # sendmail -Am -bv dovecot.user@vmail < /dev/null # echo '3,0 dovecot.user@vmail.example.com' | sendmail -Am -bv dovecot.user@vmail.example.com # dovecot.user@vmail.example.com.. deliverable: mailer dovecot, host vmail, user dovecot.user@vmail.example.com
- there had been a post about trying to improve virtual user support in sendmail incl. some ongoing talk. Maybe you find it and get some info back into this list.
few posts showed another sendmail file that needs to be configured
/etc/mail/access # vmail must be defined in /etc/hosts ... NOT listed in local-host-named To: vmail.example.com RELAY
dovecot user dovecot.user == returns UID/GID/home/mailbox ( deliverable )
these are good tests to show dovecot is able to deliver its emails
in my case, dovecot resolves users in /etc/passwd, /etc/mail/virtusertable, /etc/dovecot/password and hopefully, it will also resolve /usr/local/mysql database users
# -------------------------------------------------------------------- # 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 )
these are good tests to show dovecot is able to deliver its emails
# ---------------------------------------------------------------- -->> # 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 ==
"user unknown" comes from misconfigured since sendmail is still confused - /etc/mail/mailertable - /etc/mail/local-host-names - /etc/mail/access
my final sendmail config .... only import stuff shown ..
- my (relevant to dovecot ) sendmail.mc file looks like:
dnl # dnl # local mail delivery dnl # define(
PROCMAIL_MAILER_PATH',
/usr/local/bin/procmail')dnlFEATURE(local_procmail,
',
procmail -t -Y -a $h -d $u')dnl
REMOVE define/feature to do with procmail
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')
use Mailer(dovecot) instead .... Feature and Mailer is mutually exclusive in this case
MAILER(local) MAILER(smtp) dnl dnl # trying to use procmail to deliver local mail to system users ( /etc/passwd ) MAILER(procmail) dnl dnl MAILER(dovecot)dnl # see below dnl dnl End of File
- my (relevant to dovecot ) sendmail.cf file looks like:
take out procmail stuff
##################################### ### 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
note i'm using "S=EnvFromL/HdrFromL" NOT "S=EnvFromSMTP/HdrFromSMTP" and similarly for R=
# # End of sendmail.cf
http://wiki2.dovecot.org/LDA/Sendmail
######################################### ### DOVECOT Mailer specification ### ######################################### Mdovecot, P=/usr/local/libexec/dovecot/dovecot-lda, F=DFMPhnu9, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
should wiki2.dovecot.org be updated to show
S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix, A=/usr/local/libexec/dovecot/dovecot-lda -d $u
for debugging purproses .... it is very helpful to use a wrapper script ( wraplda.sh ) around dovecot-lda to get UID/GID info of who is calling dovecot-lda
http://dovecot.org/pipermail/dovecot/2013-January/087658.html
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)
didn't work for me
- 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@localhost # dovecot.VirtuaUser@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 .. } ..... # end of txt
Steffen Kaiser