Extern Email Konto anlegen.

Dieses Thema im Forum "Allgemein" wurde erstellt von graf_rudolf, 10. Nov. 2013.

  1. graf_rudolf

    graf_rudolf New Member

    Hallo liebe Community,
    Ich würde gerne meinen Benutzern ein E-mail Konto zu verfügung stellen.
    Ist es möglich das durch ein Formular auf meiner Webseite, ein E-Mail Konto angelegt wird? Sodass sich danach jeder der sich angemeldet hat im Webmail einloggen kann?

    Danke;-)
     
  2. nowayback

    nowayback Well-Known Member

    such hier mal nach remote api :)
     
  3. graf_rudolf

    graf_rudolf New Member

    alles klar danke;-)
    Leider klappt es bei mir mit der API noch nicht so ganz.
    Hier erstmal der Code meine .php Datei.
    PHP:
    <?php
       
      $username 
    'XXXX'// API User
      
    $password 'XXXX'// API PW
       
      
    $myusername 'test@meine-domain.de'//Mail User
      
    $mypassword 'test'// Mail PW
       
      
    $soap_location 'https://localhost:8080/remote/index.php'//'http://localhost:8080/ispconfig3/remote/index.php'

      
    $soap_uri 'https://localhost:8080/remote/'// 'http://localhost:8080/ispconfig3/interface/web/remote/'
       
      
    $client = new SoapClient(null, array('location' => $soap_location,
       
      
    'uri'      => $soap_uri));
      try {
          
    //* Login to the remote server
          
    if($session_id $client->login($username,$password)) {
              echo 
    'Logged into remote server
      sucessfully. The SessionID is '
    .$session_id.'
      '
    ;
       echo 
    'Logged into remote server sucessfully. The SessionID is '.$session_id.'
      '
    ;
       
      
    $domain_id 1;
       
      
    $client_id 1;
        
    $params = array(
                
    'server_id' => 1,
                
    'email' => '$myusername',
                
    'login' => ''$myusername',
                '
    password' => '$mypassword ',
                '
    name' => 'test',
                '
    uid' => 5000,
                '
    gid' => 5000,
                '
    maildir' => '/var/vmail/meine-domain.de/',
                '
    quota' => 0,
                '
    cc' => '',
                '
    homedir' => '/var/vmail/',
                '
    autoresponder' => 'n',
                '
    autoresponder_start_date' => '',
                '
    autoresponder_end_date' => '',
                '
    autoresponder_text' => '',
                '
    move_junk' => 'n',
                '
    custom_mailfilter' => 'spam',
                '
    postfix' => 'y',
                '
    access' => y',
                
    'disableimap' => 'n',
                
    'disablepop3' => 'n',
                
    'disabledeliver' => 'n',
                
    'disablesmtp' => 'n'
                
    );
        
        
    $affected_rows $client->mail_user_add($session_id$client_id$params);

        echo 
    "New user: ".$affected_rows."<br>";
        
        if(
    $client->logout($session_id)) {
            echo 
    'Logged out.<br />';
        }
        
        
    } catch (
    SoapFault $e) {
        echo 
    $client->__getLastResponse();
        die(
    'SOAP Error: '.$e->getMessage());
    }

    ?>

    Wenn ich die Datei jetzt aufrufe kommt leider nur eine Weiße Seite, und es wird kein E-Mail User angelegt.

    Was mach ich falsch?
     
  4. Till

    Till Administrator

    Dann schau mal in das apache error.log der webseite.
     
  5. graf_rudolf

    graf_rudolf New Member

    PHP:
    [Mon Nov 11 17:13:54 2013] [warn] [client 95.91.229.XXmod_fcgidstderrPHP Parse error:  syntax errorunexpected '$myusername' (T_VARIABLE), expecting ')' in /var/www/clients/client1/web1/web/mail/useradd/test.php on line 31
    Das ist der Error Log

    in Zeile 31 Steht:
    PHP:
      $client_id 1;
     
  6. Till

    Till Administrator

    Schau mal in die zeile:

    'login' => ''$myusername',

    da sind 2 einfache anführungszeichen. Außerdem kannst Du keine variablen wie $myusername innerhalb von einfachen anführungszeichen in php verwenden. Am Besten lässt Du die Anführungszeichen um die variablen weg, oder erstzt sie durch doppelte " anführungszeichen.
     
  7. graf_rudolf

    graf_rudolf New Member

    So vielen Dank erstmal, hab noch bisschen dran rumgespielt und jetzt legt er zumindest schonmal die User an so wie ich das möchte.

    Ich bastel nochmal bisschen weiter dran rum;-)

    Als nächsten Schritt will ich jetzt ein Forumlar bauen der
    $myusername = "xxx";
    $mypassword = "xxx";
    mit Werten füttert.


    Hier ist die PHP so wie sie grade bei mir funktioniert.
    Wenn ihr noch verbesserungsvorschläge habt immer her damit.



    PHP:
    <?php
       
      $username 
    "xxx"// API User
      
    $password "xxx"// API PW
       
      
    $myusername "xxx"//Mail User
      
    $mypassword "xxx"// Mail PW
       
      
    $soap_location 'https://localhost:8080/remote/index.php'//'http://localhost:8080/ispconfig3/remote/index.php'

      
    $soap_uri 'https://localhost:8080/remote/'// 'http://localhost:8080/remote/'
       
      
    $client = new SoapClient(null, array('location' => $soap_location,
       
      
    'uri'      => $soap_uri));
      try {
          
    //* Login to the remote server
          
    if($session_id $client->login($username,$password)) {
              echo 
    'Logged into remote server
      sucessfully. The SessionID is '
    .$session_id.'
      '
    ;
       echo 
    'Logged into remote server sucessfully. The SessionID is :'.$session_id.'<br />';
        }
        
    $params = array(
                
    'server_id' => 1,
                
    'email' => "$myusername",
                
    'login' => "$myusername",
                
    'password' => "$mypassword",
                
    'name' => 'test',
                
    'uid' => 5000,
                
    'gid' => 5000,
                
    'maildir' => '/var/vmail/xxx.de/',
                
    'quota' => 10000000000,
                
    'cc' => '',
                
    'homedir' => '/var/vmail/',
                
    'autoresponder' => 'n',
                
    'autoresponder_start_date' => '',
                
    'autoresponder_end_date' => '',
                
    'autoresponder_text' => '',
                
    'move_junk' => 'n',
                
    'custom_mailfilter' => 'spam',
                
    'postfix' => 'y',
                
    'access' => 'y',
                
    'disableimap' => 'n',
                
    'disablepop3' => 'n',
                
    'disabledeliver' => 'n',
                
    'disablesmtp' => 'n'
                
    );
        
        
    $affected_rows $client->mail_user_add($session_id$client_id$params);

        echo 
    "New user: ".$affected_rows."<br>";
        
        if(
    $client->logout($session_id)) {
            echo 
    'Logged out.<br />';
        }
        
        
    } catch (
    SoapFault $e) {
        echo 
    $client->__getLastResponse();
        die(
    'SOAP Error: '.$e->getMessage());
    }

    ?>
     
  8. graf_rudolf

    graf_rudolf New Member

    Bzw wenn noch jemand Tipps hat, wie ich das Formular am besten erstelle
    bin ich auch immer für Tipps dankbar.

    schönen Abend;-)
     
  9. graf_rudolf

    graf_rudolf New Member

    Nabend,
    der Aktuelle Stand:
    Es ist jetzt möglich über ein Formular (Name, Mail Adresse, Passwort)
    eine E-Mail aresse zu erstellen.
    Das Problem ist jetzt das sich Teilweise mehrere Benutzer ein Postfach teilen.
    Das sieht man z.B dadran, dass 5 User angelegt werden, und alle 5 User auch von den anderen die ISPconfig Willkommens Nachricht im Passwort haben.

    Danke für eure Hilfe.

    mfg
     
  10. graf_rudolf

    graf_rudolf New Member

    Gibt es auch noch eine Möglichkeit mit der API abzufragen welche E-Mail adressen noch frei sind? oder gibt es da andere Lösung für?
     
  11. Till

    Till Administrator

    Ja, die gibt es. z.B.:

    Code:
    $email = 'test@domain.de';
    $mailuser = $client->mail_user_get($session_id, array('email' => $email));
    if(is_array($mailuser)) {
      echo 'Email gibt es noch nicht';
    }
     
  12. graf_rudolf

    graf_rudolf New Member

    Ich hab nochmal ein Problem.

    In ISP Config werden die E-mail Adressen jetzt ja ohne Probleme angelegt.

    Aber es wird im Ordner /var/vmail/xxx.de nicht für jeden Benutzer ein neuer Ordner angelegt.

    Jetzt kann ich mehrer Benutzer anlegen aber alle haben den gleichen Posteingang.

    Was mach ich falsch?

    schönes Wochenende;-)
     
  13. Till

    Till Administrator

    Schau mal in Deinem Code nach und stell sicher dass Du für jeden neu angelegten User auch ein anderes maildir im $params Array angibst.
     
  14. ww1com

    ww1com New Member


    Hay Danke das hat mir noch gefehlt. Vielen Dank an denn
    Till Administrator

    Jetzt habe ich mal eine Frage unter ispconfig 3 remote User_mail_add.php
    die beide Verzeichnisse
    homedir und maildir sind das unterschiedliche verzeicnisse
     
    Zuletzt bearbeitet: 19. Apr. 2016
  15. ww1com

    ww1com New Member

    Leider finde ich nichts im Netz Wer kann Helfen
    maildir' => '/var/vmail/$Domain/$name',
    was muss ich machen oder ändern . Danke
     
  16. Till

    Till Administrator

    Lege eine mailbox in ispconfig an, dann schau in die mail_user tabelle dann weißt Du wie alle api parameter gefüllt werden müssen alles ausßer den $sys_* spalten der DB übergibst Du im $params array.
     
  17. ww1com

    ww1com New Member

    das von ispconfig 3 /var/vmail/ww1net.de/admin
    und das von mir /var/vmail/"$domain"/"$name"
     
  18. ww1com

    ww1com New Member

    ich weiss nicht was ich falsch mache..
    Nu jetzt gehe ich erstmal die Sonne genießen
    // Template für ispconfig 3 Mail server hosting.ww1net.de
    require 'soap_config.php';

    $exemail="xxxxx@ww1net.de";
    $exlogin="xxxxx@ww1net.de";
    $expw="xxxxxx";
    $exname="xxxxxx";
    // '/var/vmail/ww1net.de/joerg',
    $Var1="/var/vmail/";
    $domain="ww1net.de/";

    $var = var1 . $domain . $exname;
    $client = new SoapClient(null, array('location' => $soap_location,
    'uri' => $soap_uri,
    'trace' => 1,
    'exceptions' => 1));


    try {
    if($session_id = $client->login($username, $password)) {
    echo 'Logged successfull. Session ID:'.$session_id.'<br />';
    }

    //* Set the function parameters.
    $client_id = 1;
    $params = array(
    'server_id' => 2,
    'email' => $exemail,
    'login' => $exlogin,
    'password' => $expw,
    'name' => $exname,
    'uid' => 5000,
    'gid' => 5000,
    'maildir' => $var,
    'quota' => 5242880,
    'cc' => '',
    'homedir' => '/var/vmail',
     

Diese Seite empfehlen