Applicable to:
- Plesk for Linux
Question
By default, Plesk stores all mailboxes in the directory /var/qmail/mailnames/
. How to change this location?
Answer
Warning: Changing the mailboxes location on Plesk servers with Plesk Premium Email installed is currently not supported. Such a possibility will be added in the future.
-
Find what SMTP and IMAP/POP3 servers are in use: Log in to Plesk and go to Tools & Settings > Mail Server Settings:
-
Connect to the server using SSH.
-
Stop the SMTP service:
# service postfix stop
-
Open the file
/etc/psa/psa.conf
in a text editor and change the value of the variablePLESK_MAILNAMES_D
: specify a new location for mailbox directory:# grep PLESK_MAILNAMES_D /etc/psa/psa.conf
PLESK_MAILNAMES_D /new_directory/mailnamesNote: Capital letters must not be used in the name of the directory that will be used as the new location for mailboxes.
Note: To avoid performance degradation, the new location for the mailboxes directory should be located in the local file system - it should not be mounted as a network share, such as NFS.
-
Copy the current mailboxes directory to the parent directory for the new mailboxes directory:
# cp -ap /var/qmail/mailnames /new_directory
For example, if the mailboxes directory is
/mnt/mailnames
, the command should look like this:# cp -ap /var/qmail/mailnames /mnt
Warning: The directory
/var/qmail/mailnames
should not be removed. Only domains' directories can be removed or moved out from there if necessary. -
Change the configuration of the IMAP/POP3 server:
-
Dovecot:
-
Create a new custom file to add variables in it:
# touch /etc/dovecot/conf.d/99-custom_dir.conf
-
Copy the actual location from the file
/etc/dovecot/dovecot.conf
:# egrep -i mail_home\|mail_location /etc/dovecot/dovecot.conf
mail_home = /var/qmail/mailnames/%Ld/%Ln
mail_location = maildir:/var/qmail/mailnames/%Ld/%Ln/Maildir -
Add those 2 variables in the custom file:
/etc/dovecot/conf.d/99-custom_dir.conf
. Then change them to the custom location and add:UTF-8
to the end of the second parameter:# egrep -i mail_home\|mail_location /etc/dovecot/conf.d/99-custom_dir.conf
mail_home = /new/mailnames/directory/%Ld/%Ln
mail_location = maildir:/new/mailnames/directory/%Ld/%Ln/Maildir:UTF-8 -
Restart Dovecot and pc-remote service:
# service dovecot restart
# service pc-remote restart
-
-
Courier-IMAP:
No need to change configuration, just restart all Courier services:# service courier-authdaemon restart
# service courier-imapd restart
# service courier-imaps restart
# service courier-pop3d restart
# service courier-pop3s restart
-
-
After all the steps are done, start SMTP service and reconfigure mail services:
# service postfix start
# plesk repair mail -y -
Set the new home directory for the user
popuser
. In the file/etc/passwd
, change/var/qmail/
to the new location:-
For CentOS/RHEL/CloudLinux/AlmaLinux:
From:
popuser:x:30:31:POP3 service user:/var/qmail/popuser:/sbin/nologin
To:
popuser:x:30:31:POP3 service user:/<new_mailnames_directory>/popuser:/sbin/nologin
-
For Debian/Ubuntu:
From:
popuser:x:30:31:POP3 service user:/var/qmail/popuser:/bin/false
To:
popuser:x:30:31:POP3 service user:/<new_mailnames_directory>/popuser:/bin/false
-
Note: Before creating new mailboxes on new domains on CentOS/RHEL/AlmaLinux, it may be required to configure SELinux in the following way:
# chcon -R -t mail_spool_t <new_mailnames_directory>
Comments
2 comments
ATTENTION: It's necessary to set SELinux to permissive as described here before https://support.plesk.com/hc/en-us/articles/12377675193879-How-to-enable-disable-SELinux-on-a-server
Hi, is this also possible on mailbox level? Or only "all or nothing"?
One Customer has huge Amount of Mails, he wants to mount that on other storage.
Please sign in to leave a comment.