Jens Harms Posted February 4, 2019 Share Posted February 4, 2019 Hi, kann mir jemand sagen wie Froxlor eine Email-Adresse anlegt? (SQL,configs, directories) Ich möchte ein script schreiben mit dem ich anhand einer CSV-Datei mit Email-adressen und Passwörtern (plain-text) neue Email-Adressen anlegen kann. Zudem möchte ich später noch maildir Verzeichnisse von qmail/couriermail importieren. Gruß, Jens Link to comment Share on other sites More sharing options...
d00p Posted February 4, 2019 Share Posted February 4, 2019 grundlegend ist das anlegen von mailkonten nicht mehr als ein paar datenbank-einträge - wenn du konform sein willst (resourcen zählen etc.) dann schau doch einfach mal in customer_email.php was beim Anlegen passiert. Mit der aktuellen Entwickler-Version (git-master, 0.10.0) gäbe es eine API die du dafür ansprechen könntest - ich rate allerdings von einem produktiven Einsatz von 0.10.0 derzeit noch ab Link to comment Share on other sites More sharing options...
Jens Harms Posted February 6, 2019 Author Share Posted February 6, 2019 Vielen dank d00p für die schnelle Antwort, ich habe mich im source etwas umgeschaut aber leider nicht alles verstanden (unter accounts/add wird ein update auf mail_virtual gemacht, und ich dachte das ohne einen eintrag in mail_users kein eintrag in mail_virtual vorhanden sein kann). Jedenfalls habe ich mir folgendes zusammengereimt und hoffe das es korrekt ist: ## ACHTUNG: pseudo code ## ## DEFAULTS ## $uid = 2000 $gid = 2000 $homedir = /var/customers/mail $postfix = 'y' $quota = 0 $pop3 = 1 $imap = 1 # Wird eine Mail zu einer vorhandenen Domain hinzugefügt, # wird das benutzerkonto in mail_users angelegt und für jede # mail-adresse des benutzers ein eintrag in mail_virtual erzeugt. # diese funktion erzeugt pro benutzer genau eine email adresse # FUNCTION add_mail( $email_full, $password ) { $crypt_password = sha512_crypt( $password ) $email_domain = substr($email_full,strrpos($email_full,"@")+1); ( $domainid, $customerid ) = select id,customerid from panel_domains where domain=$email_domain $maildir = $domain_name/$email_full/Maildir $popaccountid = INSERT INTO mail_users (customerid, email, username, password, password_enc, homedir, maildir, uid, gid, domainid, postfix, quota, imap, pop3) VALUES( $customerid, $email_full, $email_full, $password, $crypt_password, $homedir, $maildir, $uid, $gid, $domainid $postfix, $quota, $imap, $pop3 ); INSERT INTO mail_virtual ( email , email_full, destination, domainid, customerid, popaccountid, iscatchall ) VALUES( $email_full, $email_full, $email_full, $domainid, $popaccountid, 0 ); UPDATE panel_customers SET email_accounts_used=email_accounts_used+1 WHERE customerid = $customerid Link to comment Share on other sites More sharing options...
d00p Posted February 6, 2019 Share Posted February 6, 2019 1 hour ago, Jens Harms said: $maildir = $domain_name/$email_full/Maildir das wäre eher $username = substr($email_full, 0, strpos($email_full, '@')); $maildir = $domain_name/$username/Maildir aber im grunde ist das egal, denn dovecot und postfix lesen schlichtweg das homedir aus, was in der datenbank steht 1 hour ago, Jens Harms said: ( $domainid, $customerid ) = select id,customerid from panel_domains where domain=$email_domain Du willst zusätzlich auch prüfen, ob die Domain überhaupt für E-Mail aktiviert ist: select id,customerid from panel_domains where domain=$email_domain and isemaildomain = '1' Und zum schluss, würde ich aufgrund der customerid noch selektieren, ob der user nicht schon sein kontingent erreicht hat, z.B.: SELECT email_accounts, email_accounts_used FROM panel_customers WHERE customerid = :id [...] if ($email_accounts == -1 || ($email_accounts > 0 && $email_accounts_used < $email_accounts)) { [darf anlegen] } else { [kontingent erreicht, darf keine anlegen] } Link to comment Share on other sites More sharing options...
Question
Jens Harms
Hi,
kann mir jemand sagen wie Froxlor eine Email-Adresse anlegt? (SQL,configs, directories)
Ich möchte ein script schreiben mit dem ich anhand einer CSV-Datei mit Email-adressen und Passwörtern (plain-text) neue Email-Adressen anlegen kann.
Zudem möchte ich später noch maildir Verzeichnisse von qmail/couriermail importieren.
Gruß, Jens
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.