dovecot: lda: Fatal: Unknown user

Discussion in 'Installation/Configuration' started by dpicella, Aug 21, 2010.

  1. dpicella

    dpicella New Member

    I'm trying to configure postfix-dovecot with the sieve plugin and mysqlsupport. I also need to get squirrelmail working.

    System: Centos 5.5

    I followed the installation instructions at:
    http://www.howtoforge.com/perfect-server-centos-5.5-x86_64-ispconfig-3-p4

    Dovecot mail delivery gives me this error:
    Code:
    Aug 21 11:48:52 jpre postfix/smtpd[6446]: connect from mail-wy0-f177.google.com[74.125.82.177]
    Aug 21 11:48:53 jpre postfix/smtpd[6446]: 3D0902928143: client=mail-wy0-f177.google.com[74.125.82.177]
    Aug 21 11:48:53 jpre postfix/cleanup[6452]: 3D0902928143: message-id=<AANLkTikbVT+__VjGBiiQRusePvdEyqXPnnL1DeL00YwN@mail.gmail.com>
    Aug 21 11:48:53 jpre postfix/qmgr[6414]: 3D0902928143: from=<dpicella@gmail.com>, size=1874, nrcpt=1 (queue active)
    Aug 21 18:48:55 jpre postfix/smtpd[6456]: connect from unknown[127.0.0.1]
    Aug 21 18:48:55 jpre postfix/smtpd[6456]: 2F4232928149: client=unknown[127.0.0.1]
    Aug 21 11:48:55 jpre postfix/cleanup[6452]: 2F4232928149: message-id=<AANLkTikbVT+__VjGBiiQRusePvdEyqXPnnL1DeL00YwN@mail.gmail.com>
    Aug 21 18:48:55 jpre postfix/smtpd[6456]: disconnect from unknown[127.0.0.1]
    Aug 21 11:48:55 jpre postfix/qmgr[6414]: 2F4232928149: from=<dpicella@gmail.com>, size=2271, nrcpt=1 (queue active)
    Aug 21 11:48:55 jpre amavis[4579]: (04579-15) Passed CLEAN, [74.125.82.177] [74.125.82.177] <dpicella@gmail.com> -> <ff@pcmgdoc.com>, Message-ID: <AANLkTikbVT+__VjGBiiQRusePvdEyqXPnnL1DeL00YwN@mail.gmail.com>, mail_id: iXc0WyWAZkft, Hits: -0.099, size: 1874, queued_as: 2F4232928149, 1641 ms
    Aug 21 18:48:55 jpre postfix/smtp[6453]: 3D0902928143: to=<ff@pcmgdoc.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.1, delays=0.47/0/0/1.6, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=04579-15, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 2F4232928149)
    Aug 21 11:48:55 jpre postfix/qmgr[6414]: 3D0902928143: removed
    [B]Aug 21 11:48:55 jpre dovecot: lda: Fatal: Unknown user[/B]
    Aug 21 11:48:55 jpre postfix/pipe[6577]: 2F4232928149: to=<ff@pcmgdoc.com>, relay=dovecot, delay=0.04, delays=0/0.01/0/0.03, dsn=4.3.0, status=deferred (temporary failure)
    Aug 21 11:49:11 jpre dovecot: imap-login: Aborted login (auth failed, 1 attempts): user=<ff@pcmgdoc.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=0, secured
    Aug 21 11:49:23 jpre postfix/smtpd[6446]: disconnect from mail-wy0-f177.google.com[74.125.82.177]
    /etc/postfix/main.cf
    Code:
    # Global Postfix configuration file. This file lists only a subset
    # of all parameters. For the syntax, and for a complete parameter
    # list, see the postconf(5) manual page (command: "man 5 postconf").
    #
    # For common configuration examples, see BASIC_CONFIGURATION_README
    # and STANDARD_CONFIGURATION_README. To find these documents, use
    # the command "postconf html_directory readme_directory", or go to
    # http://www.postfix.org/.
    #
    # For best results, change no more than 2-3 parameters at a time,
    # and test if Postfix still works after every change.
    
    # SOFT BOUNCE
    #
    # The soft_bounce parameter provides a limited safety net for
    # testing.  When soft_bounce is enabled, mail will remain queued that
    # would otherwise bounce. This parameter disables locally-generated
    # bounces, and prevents the SMTP server from rejecting mail permanently
    # (by changing 5xx replies into 4xx replies). However, soft_bounce
    # is no cure for address rewriting mistakes or mail routing mistakes.
    #
    #soft_bounce = no
    
    # LOCAL PATHNAME INFORMATION
    #
    # The queue_directory specifies the location of the Postfix queue.
    # This is also the root directory of Postfix daemons that run chrooted.
    # See the files in examples/chroot-setup for setting up Postfix chroot
    # environments on different UNIX systems.
    #
    queue_directory = /var/spool/postfix
    
    # The command_directory parameter specifies the location of all
    # postXXX commands.
    #
    command_directory = /usr/sbin
    
    # The daemon_directory parameter specifies the location of all Postfix
    # daemon programs (i.e. programs listed in the master.cf file). This
    # directory must be owned by root.
    #
    daemon_directory = /usr/libexec/postfix
    
    # QUEUE AND PROCESS OWNERSHIP
    #
    # The mail_owner parameter specifies the owner of the Postfix queue
    # and of most Postfix daemon processes.  Specify the name of a user
    # account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
    # AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM.  In
    # particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
    # USER.
    #
    mail_owner = postfix
    
    # The default_privs parameter specifies the default rights used by
    # the local delivery agent for delivery to external file or command.
    # These rights are used in the absence of a recipient user context.
    # DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
    #
    #default_privs = nobody
    
    # INTERNET HOST AND DOMAIN NAMES
    # 
    # The myhostname parameter specifies the internet hostname of this
    # mail system. The default is to use the fully-qualified domain name
    # from gethostname(). $myhostname is used as a default value for many
    # other configuration parameters.
    #
    #myhostname = host.domain.tld
    #myhostname = virtual.domain.tld
    
    # The mydomain parameter specifies the local internet domain name.
    # The default is to use $myhostname minus the first component.
    # $mydomain is used as a default value for many other configuration
    # parameters.
    #
    #mydomain = domain.tld
    
    # SENDING MAIL
    # 
    # The myorigin parameter specifies the domain that locally-posted
    # mail appears to come from. The default is to append $myhostname,
    # which is fine for small sites.  If you run a domain with multiple
    # machines, you should (1) change this to $mydomain and (2) set up
    # a domain-wide alias database that aliases each user to
    # user@that.users.mailhost.
    #
    # For the sake of consistency between sender and recipient addresses,
    # myorigin also specifies the default domain name that is appended
    # to recipient addresses that have no @domain part.
    #
    #myorigin = $myhostname
    #myorigin = $mydomain
    
    # RECEIVING MAIL
    
    # The inet_interfaces parameter specifies the network interface
    # addresses that this mail system receives mail on.  By default,
    # the software claims all active interfaces on the machine. The
    # parameter also controls delivery of mail to user@[ip.address].
    #
    # See also the proxy_interfaces parameter, for network addresses that
    # are forwarded to us via a proxy or network address translator.
    #
    # Note: you need to stop/start Postfix when this parameter changes.
    #
    #inet_interfaces = all
    #inet_interfaces = $myhostname
    #inet_interfaces = $myhostname, localhost
    inet_interfaces = all
    
    # The proxy_interfaces parameter specifies the network interface
    # addresses that this mail system receives mail on by way of a
    # proxy or network address translation unit. This setting extends
    # the address list specified with the inet_interfaces parameter.
    #
    # You must specify your proxy/NAT addresses when your system is a
    # backup MX host for other domains, otherwise mail delivery loops
    # will happen when the primary MX host is down.
    #
    #proxy_interfaces =
    #proxy_interfaces = 1.2.3.4
    
    # The mydestination parameter specifies the list of domains that this
    # machine considers itself the final destination for.
    #
    # These domains are routed to the delivery agent specified with the
    # local_transport parameter setting. By default, that is the UNIX
    # compatible delivery agent that lookups all recipients in /etc/passwd
    # and /etc/aliases or their equivalent.
    #
    # The default is $myhostname + localhost.$mydomain.  On a mail domain
    # gateway, you should also include $mydomain.
    #
    # Do not specify the names of virtual domains - those domains are
    # specified elsewhere (see VIRTUAL_README).
    #
    # Do not specify the names of domains that this machine is backup MX
    # host for. Specify those names via the relay_domains settings for
    # the SMTP server, or use permit_mx_backup if you are lazy (see
    # STANDARD_CONFIGURATION_README).
    #
    # The local machine is always the final destination for mail addressed
    # to user@[the.net.work.address] of an interface that the mail system
    # receives mail on (see the inet_interfaces parameter).
    #
    # Specify a list of host or domain names, /file/name or type:table
    # patterns, separated by commas and/or whitespace. A /file/name
    # pattern is replaced by its contents; a type:table is matched when
    # a name matches a lookup key (the right-hand side is ignored).
    # Continue long lines by starting the next line with whitespace.
    #
    # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
    #
    mydestination = jpre.net, localhost, localhost.localdomain
    #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
    #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
    #	mail.$mydomain, www.$mydomain, ftp.$mydomain
    
    # REJECTING MAIL FOR UNKNOWN LOCAL USERS
    #
    # The local_recipient_maps parameter specifies optional lookup tables
    # with all names or addresses of users that are local with respect
    # to $mydestination, $inet_interfaces or $proxy_interfaces.
    #
    # If this parameter is defined, then the SMTP server will reject
    # mail for unknown local users. This parameter is defined by default.
    #
    # To turn off local recipient checking in the SMTP server, specify
    # local_recipient_maps = (i.e. empty).
    #
    # The default setting assumes that you use the default Postfix local
    # delivery agent for local delivery. You need to update the
    # local_recipient_maps setting if:
    #
    # - You define $mydestination domain recipients in files other than
    #   /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
    #   For example, you define $mydestination domain recipients in    
    #   the $virtual_mailbox_maps files.
    #
    # - You redefine the local delivery agent in master.cf.
    #
    # - You redefine the "local_transport" setting in main.cf.
    #
    # - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
    #   feature of the Postfix local delivery agent (see local(8)).
    #
    # Details are described in the LOCAL_RECIPIENT_README file.
    #
    # Beware: if the Postfix SMTP server runs chrooted, you probably have
    # to access the passwd file via the proxymap service, in order to
    # overcome chroot restrictions. The alternative, having a copy of
    # the system passwd file in the chroot jail is just not practical.
    #
    # The right-hand side of the lookup tables is conveniently ignored.
    # In the left-hand side, specify a bare username, an @domain.tld
    # wild-card, or specify a user@domain.tld address.
    # 
    #local_recipient_maps = unix:passwd.byname $alias_maps
    #local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    #local_recipient_maps =
    
    # The unknown_local_recipient_reject_code specifies the SMTP server
    # response code when a recipient domain matches $mydestination or
    # ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
    # and the recipient address or address local-part is not found.
    #
    # The default setting is 550 (reject mail) but it is safer to start
    # with 450 (try again later) until you are certain that your
    # local_recipient_maps settings are OK.
    #
    unknown_local_recipient_reject_code = 550
    
    # TRUST AND RELAY CONTROL
    
    # The mynetworks parameter specifies the list of "trusted" SMTP
    # clients that have more privileges than "strangers".
    #
    # In particular, "trusted" SMTP clients are allowed to relay mail
    # through Postfix.  See the smtpd_recipient_restrictions parameter
    # in postconf(5).
    #
    # You can specify the list of "trusted" network addresses by hand
    # or you can let Postfix do it for you (which is the default).
    #
    # By default (mynetworks_style = subnet), Postfix "trusts" SMTP
    # clients in the same IP subnetworks as the local machine.
    # On Linux, this does works correctly only with interfaces specified
    # with the "ifconfig" command.
    # 
    # Specify "mynetworks_style = class" when Postfix should "trust" SMTP
    # clients in the same IP class A/B/C networks as the local machine.
    # Don't do this with a dialup site - it would cause Postfix to "trust"
    # your entire provider's network.  Instead, specify an explicit
    # mynetworks list by hand, as described below.
    #  
    # Specify "mynetworks_style = host" when Postfix should "trust"
    # only the local machine.
    # 
    #mynetworks_style = class
    #mynetworks_style = subnet
    #mynetworks_style = host
    
    # Alternatively, you can specify the mynetworks list by hand, in
    # which case Postfix ignores the mynetworks_style setting.
    #
    # Specify an explicit list of network/netmask patterns, where the
    # mask specifies the number of bits in the network part of a host
    # address.
    #
    # You can also specify the absolute pathname of a pattern file instead
    # of listing the patterns here. Specify type:table for table-based lookups
    # (the value on the table right-hand side is not used).
    #
    #mynetworks = 168.100.189.0/28, 127.0.0.0/8
    #mynetworks = $config_directory/mynetworks
    #mynetworks = hash:/etc/postfix/network_table
    
    # The relay_domains parameter restricts what destinations this system will
    # relay mail to.  See the smtpd_recipient_restrictions description in
    # postconf(5) for detailed information.
    #
    # By default, Postfix relays mail
    # - from "trusted" clients (IP address matches $mynetworks) to any destination,
    # - from "untrusted" clients to destinations that match $relay_domains or
    #   subdomains thereof, except addresses with sender-specified routing.
    # The default relay_domains value is $mydestination.
    # 
    # In addition to the above, the Postfix SMTP server by default accepts mail
    # that Postfix is final destination for:
    # - destinations that match $inet_interfaces or $proxy_interfaces,
    # - destinations that match $mydestination
    # - destinations that match $virtual_alias_domains,
    # - destinations that match $virtual_mailbox_domains.
    # These destinations do not need to be listed in $relay_domains.
    # 
    # Specify a list of hosts or domains, /file/name patterns or type:name
    # lookup tables, separated by commas and/or whitespace.  Continue
    # long lines by starting the next line with whitespace. A file name
    # is replaced by its contents; a type:name table is matched when a
    # (parent) domain appears as lookup key.
    #
    # NOTE: Postfix will not automatically forward mail for domains that
    # list this system as their primary or backup MX host. See the
    # permit_mx_backup restriction description in postconf(5).
    #
    #relay_domains = $mydestination
    
    # INTERNET OR INTRANET
    
    # The relayhost parameter specifies the default host to send mail to
    # when no entry is matched in the optional transport(5) table. When
    # no relayhost is given, mail is routed directly to the destination.
    #
    # On an intranet, specify the organizational domain name. If your
    # internal DNS uses no MX records, specify the name of the intranet
    # gateway host instead.
    #
    # In the case of SMTP, specify a domain, host, host:port, [host]:port,
    # [address] or [address]:port; the form [host] turns off MX lookups.
    #
    # If you're connected via UUCP, see also the default_transport parameter.
    #
    #relayhost = $mydomain
    #relayhost = [gateway.my.domain]
    #relayhost = [mailserver.isp.tld]
    #relayhost = uucphost
    #relayhost = [an.ip.add.ress]
    
    # REJECTING UNKNOWN RELAY USERS
    #
    # The relay_recipient_maps parameter specifies optional lookup tables
    # with all addresses in the domains that match $relay_domains.
    #
    # If this parameter is defined, then the SMTP server will reject
    # mail for unknown relay users. This feature is off by default.
    #
    # The right-hand side of the lookup tables is conveniently ignored.
    # In the left-hand side, specify an @domain.tld wild-card, or specify
    # a user@domain.tld address.
    # 
    #relay_recipient_maps = hash:/etc/postfix/relay_recipients
    
    # INPUT RATE CONTROL
    #
    # The in_flow_delay configuration parameter implements mail input
    # flow control. This feature is turned on by default, although it
    # still needs further development (it's disabled on SCO UNIX due
    # to an SCO bug).
    # 
    # A Postfix process will pause for $in_flow_delay seconds before
    # accepting a new message, when the message arrival rate exceeds the
    # message delivery rate. With the default 100 SMTP server process
    # limit, this limits the mail inflow to 100 messages a second more
    # than the number of messages delivered per second.
    # 
    # Specify 0 to disable the feature. Valid delays are 0..10.
    # 
    #in_flow_delay = 1s
    
    # ADDRESS REWRITING
    #
    # The ADDRESS_REWRITING_README document gives information about
    # address masquerading or other forms of address rewriting including
    # username->Firstname.Lastname mapping.
    
    # ADDRESS REDIRECTION (VIRTUAL DOMAIN)
    #
    # The VIRTUAL_README document gives information about the many forms
    # of domain hosting that Postfix supports.
    
    # "USER HAS MOVED" BOUNCE MESSAGES
    #
    # See the discussion in the ADDRESS_REWRITING_README document.
    
    # TRANSPORT MAP
    #
    # See the discussion in the ADDRESS_REWRITING_README document.
    
    # ALIAS DATABASE
    #
    # The alias_maps parameter specifies the list of alias databases used
    # by the local delivery agent. The default list is system dependent.
    #
    # On systems with NIS, the default is to search the local alias
    # database, then the NIS alias database. See aliases(5) for syntax
    # details.
    # 
    # If you change the alias database, run "postalias /etc/aliases" (or
    # wherever your system stores the mail alias file), or simply run
    # "newaliases" to build the necessary DBM or DB file.
    #
    # It will take a minute or so before changes become visible.  Use
    # "postfix reload" to eliminate the delay.
    #
    #alias_maps = dbm:/etc/aliases
    alias_maps = hash:/etc/aliases
    #alias_maps = hash:/etc/aliases, nis:mail.aliases
    #alias_maps = netinfo:/aliases
    
    # The alias_database parameter specifies the alias database(s) that
    # are built with "newaliases" or "sendmail -bi".  This is a separate
    # configuration parameter, because alias_maps (see above) may specify
    # tables that are not necessarily all under control by Postfix.
    #
    #alias_database = dbm:/etc/aliases
    #alias_database = dbm:/etc/mail/aliases
    alias_database = hash:/etc/aliases
    #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
    
    # ADDRESS EXTENSIONS (e.g., user+foo)
    #
    # The recipient_delimiter parameter specifies the separator between
    # user names and address extensions (user+foo). See canonical(5),
    # local(8), relocated(5) and virtual(5) for the effects this has on
    # aliases, canonical, virtual, relocated and .forward file lookups.
    # Basically, the software tries user+foo and .forward+foo before
    # trying user and .forward.
    #
    #recipient_delimiter = +
    
    # DELIVERY TO MAILBOX
    #
    # The home_mailbox parameter specifies the optional pathname of a
    # mailbox file relative to a user's home directory. The default
    # mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
    # "Maildir/" for qmail-style delivery (the / is required).
    #
    #home_mailbox = Mailbox
    #home_mailbox = Maildir/
     
    # The mail_spool_directory parameter specifies the directory where
    # UNIX-style mailboxes are kept. The default setting depends on the
    # system type.
    #
    #mail_spool_directory = /var/mail
    #mail_spool_directory = /var/spool/mail
    
    # The mailbox_command parameter specifies the optional external
    # command to use instead of mailbox delivery. The command is run as
    # the recipient with proper HOME, SHELL and LOGNAME environment settings.
    # Exception:  delivery for root is done as $default_user.
    #
    # Other environment variables of interest: USER (recipient username),
    # EXTENSION (address extension), DOMAIN (domain part of address),
    # and LOCAL (the address localpart).
    #
    # Unlike other Postfix configuration parameters, the mailbox_command
    # parameter is not subjected to $parameter substitutions. This is to
    # make it easier to specify shell syntax (see example below).
    #
    # Avoid shell meta characters because they will force Postfix to run
    # an expensive shell process. Procmail alone is expensive enough.
    #
    # IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
    # ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
    #
    #mailbox_command = /some/where/procmail
    #mailbox_command = /some/where/procmail -a "$EXTENSION"
    
    # The mailbox_transport specifies the optional transport in master.cf
    # to use after processing aliases and .forward files. This parameter
    # has precedence over the mailbox_command, fallback_transport and
    # luser_relay parameters.
    #
    # Specify a string of the form transport:nexthop, where transport is
    # the name of a mail delivery transport defined in master.cf.  The
    # :nexthop part is optional. For more details see the sample transport
    # configuration file.
    #
    # NOTE: if you use this feature for accounts not in the UNIX password
    # file, then you must update the "local_recipient_maps" setting in
    # the main.cf file, otherwise the SMTP server will reject mail for    
    # non-UNIX accounts with "User unknown in local recipient table".
    #
    #mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
    
    # If using the cyrus-imapd IMAP server deliver local mail to the IMAP
    # server using LMTP (Local Mail Transport Protocol), this is prefered
    # over the older cyrus deliver program by setting the
    # mailbox_transport as below:
    #
    # mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
    #
    # The efficiency of LMTP delivery for cyrus-imapd can be enhanced via
    # these settings.
    #
    # local_destination_recipient_limit = 300
    # local_destination_concurrency_limit = 5
    #
    # Of course you should adjust these settings as appropriate for the
    # capacity of the hardware you are using. The recipient limit setting
    # can be used to take advantage of the single instance message store
    # capability of Cyrus. The concurrency limit can be used to control
    # how many simultaneous LMTP sessions will be permitted to the Cyrus
    # message store. 
    #
    # To use the old cyrus deliver program you have to set:
    #mailbox_transport = cyrus
    
    # The fallback_transport specifies the optional transport in master.cf
    # to use for recipients that are not found in the UNIX passwd database.
    # This parameter has precedence over the luser_relay parameter.
    #
    # Specify a string of the form transport:nexthop, where transport is
    # the name of a mail delivery transport defined in master.cf.  The
    # :nexthop part is optional. For more details see the sample transport
    # configuration file.
    #
    # NOTE: if you use this feature for accounts not in the UNIX password
    # file, then you must update the "local_recipient_maps" setting in
    # the main.cf file, otherwise the SMTP server will reject mail for    
    # non-UNIX accounts with "User unknown in local recipient table".
    #
    #fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
    #fallback_transport =
    
    # The luser_relay parameter specifies an optional destination address
    # for unknown recipients.  By default, mail for unknown@$mydestination,
    # unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
    # as undeliverable.
    #
    # The following expansions are done on luser_relay: $user (recipient
    # username), $shell (recipient shell), $home (recipient home directory),
    # $recipient (full recipient address), $extension (recipient address
    # extension), $domain (recipient domain), $local (entire recipient
    # localpart), $recipient_delimiter. Specify ${name?value} or
    # ${name:value} to expand value only when $name does (does not) exist.
    #
    # luser_relay works only for the default Postfix local delivery agent.
    #
    # NOTE: if you use this feature for accounts not in the UNIX password
    # file, then you must specify "local_recipient_maps =" (i.e. empty) in
    # the main.cf file, otherwise the SMTP server will reject mail for    
    # non-UNIX accounts with "User unknown in local recipient table".
    #
    #luser_relay = $user@other.host
    #luser_relay = $local@other.host
    #luser_relay = admin+$local
      
    # JUNK MAIL CONTROLS
    # 
    # The controls listed here are only a very small subset. The file
    # SMTPD_ACCESS_README provides an overview.
    
    # The header_checks parameter specifies an optional table with patterns
    # that each logical message header is matched against, including
    # headers that span multiple physical lines.
    #
    # By default, these patterns also apply to MIME headers and to the
    # headers of attached messages. With older Postfix versions, MIME and
    # attached message headers were treated as body text.
    #
    # For details, see "man header_checks".
    #
    #header_checks = regexp:/etc/postfix/header_checks
    
    # FAST ETRN SERVICE
    #
    # Postfix maintains per-destination logfiles with information about
    # deferred mail, so that mail can be flushed quickly with the SMTP
    # "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
    # See the ETRN_README document for a detailed description.
    # 
    # The fast_flush_domains parameter controls what destinations are
    # eligible for this service. By default, they are all domains that
    # this server is willing to relay mail to.
    # 
    #fast_flush_domains = $relay_domains
    
    # SHOW SOFTWARE VERSION OR NOT
    #
    # The smtpd_banner parameter specifies the text that follows the 220
    # code in the SMTP server's greeting banner. Some people like to see
    # the mail version advertised. By default, Postfix shows no version.
    #
    # You MUST specify $myhostname at the start of the text. That is an
    # RFC requirement. Postfix itself does not care.
    #
    #smtpd_banner = $myhostname ESMTP $mail_name
    #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
    
    # PARALLEL DELIVERY TO THE SAME DESTINATION
    #
    # How many parallel deliveries to the same user or domain? With local
    # delivery, it does not make sense to do massively parallel delivery
    # to the same user, because mailbox updates must happen sequentially,
    # and expensive pipelines in .forward files can cause disasters when
    # too many are run at the same time. With SMTP deliveries, 10
    # simultaneous connections to the same domain could be sufficient to
    # raise eyebrows.
    # 
    # Each message delivery transport has its XXX_destination_concurrency_limit
    # parameter.  The default is $default_destination_concurrency_limit for
    # most delivery transports. For the local delivery agent the default is 2.
    
    #local_destination_concurrency_limit = 2
    #default_destination_concurrency_limit = 20
    
    # DEBUGGING CONTROL
    #
    # The debug_peer_level parameter specifies the increment in verbose
    # logging level when an SMTP client or server host name or address
    # matches a pattern in the debug_peer_list parameter.
    #
    debug_peer_level = 2
    
    # The debug_peer_list parameter specifies an optional list of domain
    # or network patterns, /file/name patterns or type:name tables. When
    # an SMTP client or server host name or address matches a pattern,
    # increase the verbose logging level by the amount specified in the
    # debug_peer_level parameter.
    #
    #debug_peer_list = 127.0.0.1
    #debug_peer_list = some.domain
    
    # The debugger_command specifies the external command that is executed
    # when a Postfix daemon program is run with the -D option.
    #
    # Use "command .. & sleep 5" so that the debugger can attach before
    # the process marches on. If you use an X-based debugger, be sure to
    # set up your XAUTHORITY environment variable before starting Postfix.
    #
    debugger_command =
    	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    	 xxgdb $daemon_directory/$process_name $process_id & sleep 5
    
    # If you can't use X, use this to capture the call stack when a
    # daemon crashes. The result is in a file in the configuration
    # directory, and is named after the process name and the process ID.
    #
    # debugger_command =
    #	PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
    #	echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
    #	>$config_directory/$process_name.$process_id.log & sleep 5
    #
    # Another possibility is to run gdb under a detached screen session.
    # To attach to the screen sesssion, su root and run "screen -r
    # <id_string>" where <id_string> uniquely matches one of the detached
    # sessions (from "screen -list").
    #
    # debugger_command =
    #	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
    #	-dmS $process_name gdb $daemon_directory/$process_name
    #	$process_id & sleep 1
    
    # INSTALL-TIME CONFIGURATION INFORMATION
    #
    # The following parameters are used when installing a new Postfix version.
    # 
    # sendmail_path: The full pathname of the Postfix sendmail command.
    # This is the Sendmail-compatible mail posting interface.
    # 
    sendmail_path = /usr/sbin/sendmail.postfix
    
    # newaliases_path: The full pathname of the Postfix newaliases command.
    # This is the Sendmail-compatible command to build alias databases.
    #
    newaliases_path = /usr/bin/newaliases.postfix
    
    # mailq_path: The full pathname of the Postfix mailq command.  This
    # is the Sendmail-compatible mail queue listing command.
    # 
    mailq_path = /usr/bin/mailq.postfix
    
    # setgid_group: The group for mail submission and queue management
    # commands.  This must be a group name with a numerical group ID that
    # is not shared with other accounts, not even with the Postfix account.
    #
    setgid_group = postdrop
    
    # html_directory: The location of the Postfix HTML documentation.
    #
    html_directory = no
    
    # manpage_directory: The location of the Postfix on-line manual pages.
    #
    manpage_directory = /usr/share/man
    
    # sample_directory: The location of the Postfix sample configuration files.
    # This parameter is obsolete as of Postfix 2.1.
    #
    sample_directory = /usr/share/doc/postfix-2.3.3/samples
    
    # readme_directory: The location of the Postfix README files.
    #
    readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
    myhostname = jpre.net
    mynetworks = 127.0.0.0/8 [::1]/128
    virtual_alias_domains = 
    virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
    virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
    virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
    virtual_mailbox_base = /var/vmail
    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000
    smtpd_sasl_auth_enable = yes
    broken_sasl_auth_clients = yes
    smtpd_sasl_authenticated_header = yes
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination
    smtpd_use_tls = yes
    smtpd_tls_security_level = may
    smtpd_tls_cert_file = /etc/postfix/smtpd.cert
    smtpd_tls_key_file = /etc/postfix/smtpd.key
    transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
    relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
    relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
    virtual_create_maildirsize = yes
    virtual_maildir_extended = yes
    virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
    virtual_mailbox_limit_override = yes
    virtual_maildir_limit_message = "The user you are trying to reach is over quota."
    virtual_overquota_bounce = yes
    proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
    smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
    smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
    #maildrop_destination_concurrency_limit = 1
    #maildrop_destination_recipient_limit = 1
    #virtual_transport = maildrop
    virtual_transport = dovecot 
    dovecot_destination_recipient_limit = 1
    header_checks = regexp:/etc/postfix/header_checks
    mime_header_checks = regexp:/etc/postfix/mime_header_checks
    nested_header_checks = regexp:/etc/postfix/nested_header_checks
    body_checks = regexp:/etc/postfix/body_checks
    relayhost = 
    mailbox_size_limit = 0
    message_size_limit = 0
    maildrop_destination_concurrency_limit = 1
    maildrop_destination_recipient_limit = 1
    #smtpd_sasl_type = dovecot
    #smtpd_sasl_path = private/auth
    receive_override_options = no_address_mappings
    content_filter = amavis:[127.0.0.1]:10024
    /etc/postfix/master.cf
    Code:
    #
    # Postfix master process configuration file.  For details on the format
    # of the file, see the master(5) manual page (command: "man 5 master").
    #
    # ==========================================================================
    # service type  private unpriv  chroot  wakeup  maxproc command + args
    #               (yes)   (yes)   (yes)   (never) (100)
    # ==========================================================================
    smtp      inet  n       -       n       -       -       smtpd
    #submission inet n       -       n       -       -       smtpd
    #  -o smtpd_enforce_tls=yes
    #  -o smtpd_sasl_auth_enable=yes
    #  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    #smtps     inet  n       -       n       -       -       smtpd
    #  -o smtpd_tls_wrappermode=yes
    #  -o smtpd_sasl_auth_enable=yes
    #  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    #628      inet  n       -       n       -       -       qmqpd
    pickup    fifo  n       -       n       60      1       pickup
    cleanup   unix  n       -       n       -       0       cleanup
    qmgr      fifo  n       -       n       300     1       qmgr
    #qmgr     fifo  n       -       n       300     1       oqmgr
    tlsmgr    unix  -       -       n       1000?   1       tlsmgr
    rewrite   unix  -       -       n       -       -       trivial-rewrite
    bounce    unix  -       -       n       -       0       bounce
    defer     unix  -       -       n       -       0       bounce
    trace     unix  -       -       n       -       0       bounce
    verify    unix  -       -       n       -       1       verify
    flush     unix  n       -       n       1000?   0       flush
    proxymap  unix  -       -       n       -       -       proxymap
    smtp      unix  -       -       n       -       -       smtp
    # When relaying mail as backup MX, disable fallback_relay to avoid MX loops
    relay     unix  -       -       n       -       -       smtp
    	-o fallback_relay=
    #       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
    showq     unix  n       -       n       -       -       showq
    error     unix  -       -       n       -       -       error
    discard   unix  -       -       n       -       -       discard
    local     unix  -       n       n       -       -       local
    virtual   unix  -       n       n       -       -       virtual
    lmtp      unix  -       -       n       -       -       lmtp
    anvil     unix  -       -       n       -       1       anvil
    scache	  unix	-	-	n	-	1	scache
    #
    # ====================================================================
    # Interfaces to non-Postfix software. Be sure to examine the manual
    # pages of the non-Postfix software to find out what options it wants.
    #
    # Many of the following services use the Postfix pipe(8) delivery
    # agent.  See the pipe(8) man page for information about ${recipient}
    # and other message envelope options.
    # ====================================================================
    #
    # maildrop. See the Postfix MAILDROP_README file for details.
    # Also specify in main.cf: maildrop_destination_recipient_limit=1
    #
    maildrop  unix  -       n       n       -       -       pipe
    #  flags=DRhu user=vmail argv=/usr/bin/maildrop -d vmail ${extension} ${recipient} ${user} ${nexthop} ${sender}
    maildrop  unix  -       n       n       -       -       pipe
      flags=R user=vmail argv=/usr/bin/maildrop -d ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}
    # The Cyrus deliver program has changed incompatibly, multiple times.
    #
    old-cyrus unix  -       n       n       -       -       pipe
      flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
    # Cyrus 2.1.5 (Amos Gouaux)
    # Also specify in main.cf: cyrus_destination_recipient_limit=1
    cyrus     unix  -       n       n       -       -       pipe
      user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
    #
    # See the Postfix UUCP_README file for configuration details.
    #
    uucp      unix  -       n       n       -       -       pipe
      flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
    #
    # Other external delivery methods.
    #
    ifmail    unix  -       n       n       -       -       pipe
      flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
    bsmtp     unix  -       n       n       -       -       pipe
      flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
    dovecot   unix  -       n       n       -       -       pipe
    #  flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
      flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
    amavis unix - - - - 2 smtp
            -o smtp_data_done_timeout=1200
            -o smtp_send_xforward_command=yes
    
    127.0.0.1:10025 inet n - - - - smtpd
            -o content_filter=
            -o local_recipient_maps=
            -o relay_recipient_maps=
            -o smtpd_restriction_classes=
            -o smtpd_client_restrictions=
            -o smtpd_helo_restrictions=
            -o smtpd_sender_restrictions=
            -o smtpd_recipient_restrictions=permit_mynetworks,reject
            -o mynetworks=127.0.0.0/8
            -o strict_rfc821_envelopes=yes
            -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
            -o smtpd_bind_address=127.0.0.1
    
     
  2. dpicella

    dpicella New Member

    dovecot: lda: Fatal: Unknown user -> temporary solution

    I managed to get it all working.

    Modify the following dovecot cofig files

    /etc/dovecot/conf.d/10-master.conf
    Code:
    [...]
    service auth {
      # auth_socket_path points to this userdb socket by default. It's typically
      # used by dovecot-lda, doveadm, possibly imap process, etc. Its default
      # permissions make it readable only by root, but you may need to relax these
      # permissions. Users that have access to this socket are able to get a list
      # of all usernames and get results of everyone's userdb lookups.
      unix_listener auth-userdb {
        mode = 0600
        user = vmail
        group = vmail
      }
    
      # Postfix smtp-auth
      #unix_listener /var/spool/postfix/private/auth {
      #  mode = 0666
      #}
    
      # Auth process is run as this user.
      #user = $default_internal_user
    }
    [...]
    /etc/dovecot/conf.d/10-auth.conf
    uncomment !include auth-sql.conf.ext
    Code:
    [...]
    !include auth-system.conf.ext
    !include auth-sql.conf.ext
    #!include auth-ldap.conf.ex
    [...]
    Now modify /etc/dovecot/conf.d/auth-sql.conf.ext
    as follows
    Code:
    # Authentication for SQL users. Included from auth.conf.
    #
    # <doc/wiki/AuthDatabase.SQL.txt>
    
    passdb {
      driver = sql
    
      # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
      args = /etc/dovecot-sql.conf
    }
    
    # "prefetch" user database means that the passdb already provided the
    # needed information and there's no need to do a separate userdb lookup.
    # <doc/wiki/UserDatabase.Prefetch.txt>
    #userdb {
    #  driver = prefetch
    #}
    
    userdb {
      driver = sql
      args = /etc/dovecot-sql.conf
    }
    
    # If you don't have any user-specific settings, you can avoid the user_query
    # by using userdb static instead of userdb sql, for example:
    # <doc/wiki/UserDatabase.Static.txt>
    #userdb {
      #driver = static
      #args = uid=vmail gid=vmail home=/var/vmail/%u
    #}
    
    Make sure that /etc/postfix/main.cf
    has
    Code:
    virtual_transport = dovecot
    ... not maildrop

    Take a look at the dovecot pipe above as I have it in /etc/dovecot/master.cf

    Finally ... I was getting an SQL error. Basically, dovecot lda checks to see if the lda service has is active in the query. ISPConfig 3 does not seems to support activation/deactivation of dovecot lda ... so I changed it to imap

    Here are the query lines I used in /etc/dovecot-sql.conf

    Code:
    password_query = SELECT password FROM mail_user WHERE email = '%u' AND [B]disableimap[/B] = 'n'
    user_query = SELECT email as user, maildir as home, CONCAT(maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND [B]disableimap[/B] = 'n'
    
    Technically ... I don't think this is the correct way to do it. I am not an expert at dovecot deliver and lda. The only thing I can say is that I made it work.

    Hopefully somebody who understands this a bit better can clarify what the requirements are here. This is only a workaround until proven otherwise.

    Cheers!
     

Share This Page