How to change the default location of mailboxes in Plesk for Linux?

    Posted in Plesk Control Panel on Jan 26, 2019

    By default, Plesk stores all mailboxes in the /var/qmail/mailnames/ directory. How to change this location?

    Connect to the server using SSH

    Find what SMTP and IMAP/POP3 servers are in use:

    # /usr/local/psa/admin/bin/mailmng --features | egrep 'SMTP_Server|IMAP_POP3_Server'
    $features['SMTP_Server'] = "Postfix";
    $features['IMAP_POP3_Server'] = "Dovecot";
    $features['SMTP_Server_package'] = "postfix";
    $features['IMAP_POP3_Server_package'] = "dovecot";

    Stop the SMTP service:

    # service postfix stop

    Open the file /etc/psa/psa.conf and change the PLESK_MAILNAMES_D variable: specify a new location for mailbox directory so that it is like

    # grep PLESK_MAILNAMES_D /etc/psa/psa.conf
    PLESK_MAILNAMES_D <new_mailnames_directory>

    Move mailboxes from the current directory to the new location with the command:

    # cp -ap /var/qmail/mailnames/* /new/mailnames/directory/

    If dovecot is in use, set the new location in the file /etc/dovecot/dovecot.conf by modifying values in the lines below:

    # egrep 'mail_home|mail_location' /etc/dovecot/dovecot.conf
    mail_home = <new_mailnames_directory>/%Ld/%Ln
    mail_location = maildir:<new_mailnames_directory>/%Ld/%Ln/Maildir

    Restart the dovecot service:

    # service dovecot restart

    After all the steps are done, start SMTP service and reconfigure mail settings using the mchk utility:

    # service postfix start
    # plesk repair mail

    Before creating new mailboxes on new domains configure SELinux in the following way:

    # chcon -R -t mail_spool_t <new_mailnames_directory>

    Set the new home directory for the popuser. In /etc/passwd file change /var/qmail/popuser to the required one:

    From:

    popuser:x:30:31:POP3 service user:/var/qmail/popuser:/sbin/nologin

    To:

    popuser:x:30:31:POP3 service user:/<new_mailnames_directory>/qmail/popuser:/sbin/nologin