Plesk – E-Mail-Adressen bzw. Postfächer automatisch per Konsole anlegen

Oft ist es notwendig eine große Anzahl von E-Mail-Adressen bzw. Postfächer in Plesk anzulegen. Dies kann bei vielen E-Mail-Adressen schnell frustrierend werden. Wer nicht ständig die gleichen Mouse-Bewegungen ausführen möchte sollte sich diesen Artikel anschauen.

Plesk bietet uns die Möglichkeit viele Einstellungen auch per Konsole vorzunehmen. Eine davon ist das Anlegen, das Modifizieren und das Löschen von Postfächern. Voraussetzung ist natürlich wieder root-Zugriff per Konsole auf das System.

Der für uns relevante Befehl ist mail im Plesk-Installationsverzeichnis. Dies ist bei einem Centos folgender.

/usr/local/psa/bin/mail

Wenn man den Befehl mit dem Parameter –help aufruft erscheint die entsprechende Hilfe und alle weiteren Parameter werden ausführlich erklärt.

Usage: mail command <mail_name> [options]
    Available commands:
    --create or -c     <mail>@<domain> creates mail account
    --update or -u     <mail>@<domain> updates mail account parameters
    --remove or -r     <mail>@<domain> removes mail account
    --info or -i       <mail>@<domain> retrieves mail account information
    --on               <domain>        enables mail service for domain
    --off              <domain>        disables mail service for domain
    --update-service   <domain>        Update mail service for domain
    --rename           <mail>@<domain> Rename mail
    --help or -h                       displays this help page

    Available options:
    -manage-virusfilter  <true|false>  allows or prohibits managing antivirus
    -manage-spamfilter <true|false>    allows or prohibits managing spam
                                       filter
    -mailbox           <true|false>    creates/removes mailbox
    -passwd            <passwd>        sets mailbox password [see the note
                                       below for details]
    -boxpass           <passwd>        obsolete alias for option "passwd"
                                       (this option may be removed from
                                       future releases)
    -passwd_type   <plain|encrypted>   specifies the type of mailbox
                                       password, ignored if no password
                                       specified [see the note below for
                                       details]
    -mbox_quota   <number>[B|K|M|G]    limits the mailbox quota to the
                                       desired amount in bytes ("-1" -
                                       Default quota for domain)
    -boxquota    <number>[B|K|M|G]     obsolete alias for option "mbox_quota"
                                       (this option may be removed from
                                       future releases)
    -aliases <add|del>:<name1[,name2]> adds or deletes mail alias(es) to/from
                                       mailname
    -mgroups <add|del>:<list1[,list2]> adds or removes mail name to/from mail
                                       group
    -forwarding        <true|false>    switches mail forwarding on/off
    -forwarding-addresses <add|del>:<addr1[,addr2]>
                                       adds/removes address(-es) to/from
                                       forwarding list
    -status <enabled|disabled|admin,domadm,parent,client>
                                       Enables or disables status for domain
                                       mail service
    -new               <mail>          Specifies new email
    -cp-access         <true|false>    allows or prohibits logging to control
                                       panel as user
    -description       <string>        Specifies a description of an email
                                       address to be displayed in Plesk.
    -antivirus   <off|inout|in|out>    manages antivirus filtering for mail
                                       traffic. "Off" disables antivirus
                                       filtering, "Inout" enables it for mail
                                       traffic going in any direction, "In"
                                       enables it for incoming mail only, and
                                       "Out" for outgoing mail only.
    -outgoing-messages-mbox-limit <number|default>
                                       Sets the limit on outgoing messages
                                       from a mailbox (per hour). To set the
                                       Unlimited value, specify "-1". Specify
                                       "default" to set the value specified
                                       in server-wide settings.

E-Mail-Adressen per Konsole anlegen mit Plesk

Wie wir aus der Hilfe entnehmen können benötigen wir die Parameter –create für das Erstellen eines Postfaches, den Parameter -passwd für das Passwort. Um ein richtiges Postfach zu erstellen müssen wir -mailbox auf true setzen. Soll der Postfachbenutzer sich in das Plesk-Panel einloggen können um z.B. sein Emailpasswort selbstständig zu ändern ist der Parameter -cp-access true nötig.

So sieht das ganze dann vollständig aus.

/usr/local/psa/bin/mail --create email@domain.tld -passwd geheim -cp-access true -mailbox true

Plesk – E-Mail-Adressen automatisiert anlegen

Nun können wir den genannten Befehlt verwenden um eine große Menge Mail-Adressen mit einem Schwung per Script anzulegen.

Dazu erstellen wir eine Datei addemail.txt

vim addemail.txt

und füllen diese zeilenweise mit allen neu anzulegenden E-Mail-Adressen.

email01@domain01.tld
email02@domain01.tld
email03@domain01.tld
email01@domain02.tld
email01@domain03.tld
email02@domain03.tld

Voraussetzung ist natürlich, dass die Domain bzw. das Abonnements unter denen die Postfächer angelegt werden sollen bereits in Plesk angelegt sind.

Dann erstellen wir eine weitere Datei im gleichen Verzeichnis für unser Script.

vim addemail.sh

Dort fügen wir folgenden Inhalt ein:

#!/bin/bash

for MAIL in $(cat addemail.txt)
do
	PW=$(openssl rand -base64 12)
	echo $MAIL $PW
	/usr/local/psa/bin/mail --create $MAIL -passwd $PW -cp-access true -mailbox true
done

Das Script liest nun die Datei addemail.txt ein und erstellt für jede unserer E-Mail-Adressen ein Postfach. Es wird zusätzlich ein Passwort mit 12 Stellen erzeugt und dem Postfach hinterlegt und auch auf der Konsole ausgegeben.

Anschliessen machen wir diese Datei noch ausführbar.

chmod +x ./addemail.sh

Nun können wir diese ausführen.

./addemail.sh

Das Script kann man nun noch beliebig erweitern. z.B. kann man die Passwörter in eine extra Datei oder hinter die E-Mail-Adressen schreiben lassen.

Wie man nun die vergebenen Passwörter auch wieder auslesen kann steht in dem Artikel Plesk – E-Mail Passwörter auslesen.

Weitere Informationen findet man in der Dokumentation zu Plesk.

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.