Problem with maildelivery.

Discussion in 'Installation/Configuration' started by gerr1t, Jul 17, 2010.

  1. gerr1t

    gerr1t New Member

    Hey folks!

    I have started working with ISPConfig for a couple of days now, so far its awsome! Great work!

    Allthough im running into a little trouble and was hoping you guys could help me out here.

    Normally ISPConfig puts the website data and maildata in /var. I changed this in the ISPConfig manager to /home (/sites and /vmail). This is because my /home partition is the largest :).

    After I made some vmail domains and users everything went well, ISPconfig was able to create the directory's in /home.

    Following the fact that the directory's were created perfectly I deleted /var/vmail, because it was useless for me now (at least, that is what I thought), that is probably where it went wrong..

    Everyone I send an e-mail to a user on my ISPconfig server I get the following error message in my mail.log:

    relay=maildrop, delay=0.07, delays=0.01/0.01/0/0.06, dsn=4.3.0, status=deferred (temporary failure. Command output: /usr/bin/maildrop: Unable to change to home directory. )
    So I started researching another server of mine that has ISPconfig installed on it and noticed that I had a file missing, /var/vmail/mailfilters/.mailfilter.
    So I copied the file and put on the new server.

    Now Maildrop was able to put it .. somewhere..

    But here's the weird thing now, Maildrop doesnt drop the mail in the user directory's but drops them all in one big file in /var/vmail/Maildir. All the incoming e-mails are stored into that file.

    Any ideas would be appreciated!

    Below you can find my and the contents of .mailfilter

    # See /usr/share/postfix/ for a commented, more complete version
    # Debian specific:  Specifying a file name will cause the first
    # line of that file to be used as the name.  The Debian default
    # is /etc/mailname.
    #myorigin = /etc/mailname
    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    biff = no
    # appending .domain is the MUA's job.
    append_dot_mydomain = no
    # Uncomment the next line to generate "delayed mail" warnings
    #delay_warning_time = 4h
    readme_directory = /usr/share/doc/postfix
    # TLS parameters
    smtpd_tls_cert_file = /etc/postfix/smtpd.cert
    smtpd_tls_key_file = /etc/postfix/smtpd.key
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.
    myhostname = (hidden)
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = (hidden), localhost, localhost.localdomain
    relayhost =
    mynetworks = [::1]/128
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    html_directory = /usr/share/doc/postfix/html
    virtual_alias_domains =
    virtual_alias_maps = proxy:mysql:/etc/postfix/, mysql:/etc/postfix/
    virtual_mailbox_domains = proxy:mysql:/etc/postfix/
    virtual_mailbox_maps = proxy:mysql:/etc/postfix/
    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/, reject_unauth_destination
    smtpd_tls_security_level = may
    transport_maps = proxy:mysql:/etc/postfix/
    relay_domains = mysql:/etc/postfix/
    relay_recipient_maps = mysql:/etc/postfix/
    virtual_create_maildirsize = yes
    virtual_maildir_extended = yes
    virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/
    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/
    smtpd_client_restrictions = check_client_access mysql:/etc/postfix/
    maildrop_destination_concurrency_limit = 1
    maildrop_destination_recipient_limit = 1
    virtual_transport = maildrop
    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
    content_filter = amavis:[]:10024
    receive_override_options = no_address_mappings
    message_size_limit = 0
    # Import variables
    # Workaround for broken tolower function in some current fedora releases
    if ( "$EXTENSION" ne "" )
    if (!$SENDER)
      SENDER = "<>"
    # Autocreate maildir, if not existant
    `test -e /home/vmail/$HOST`
    if ( $RETURNCODE != 0 )
      `mkdir /home/vmail/$HOST`
    `test -e /home/vmail/$HOST/$USER`
    if ( $RETURNCODE != 0 )
      `maildirmake /home/vmail/$HOST/$USER`
      `chmod -R 0700 /home/vmail/$HOST`
    # Check if the user has a autoresponder enabled
    `test -f /home/vmail/mailfilters/$HOST/$USER/.autoresponder`
    if ( $RETURNCODE == 0 )
      include "/home/vmail/mailfilters/$HOST/$USER/.autoresponder"
    # Create a mailsize file
    `echo $SIZE >> /home/vmail/$HOST/$USER/ispconfig_mailsize`
    # Test if the user has his own maildrop include,
    # if not available, check if $DEFAULT is set
    # (newer maildrop get's that from the DB and updates
    # it) and deliver or fail temporarily if not available
    `test -f /home/vmail/mailfilters/$HOST/$USER/.mailfilter`
    if ( $RETURNCODE == 0 )
      include "/home/vmail/mailfilters/$HOST/$USER/.mailfilter"
      if ( "$DEFAULT" ne "" )
        to "$DEFAULT"
  2. gerr1t

    gerr1t New Member

    Ah, I found out this is actually partly a bug within ISPconfig.

    Changing the mail directory in the ISPconfig interface does the following:

    1. It does makes your client log into the new directory, instead of /var/vmail.


    2. ISPconfig scripts still make the directory's in /var/vmail.
    3. The mail gets delivered in /var/vmail, despite of the changes you make to mail deliverery directory.

    Can anyone acknowledge?

Share This Page