API Fehler mail_user_update beim Datum für Autorespnder?

Dieses Thema im Forum "Server Administration" wurde erstellt von TraceBln, 31. Juli 2013.

  1. TraceBln

    TraceBln New Member

    Hallo allerseits,

    ich versuche gerade in der aktuellen ISPConfig Version 3.0.5.2 via API einen Autoresponder für einen Mail-Account zu aktivieren. Das ganze klappt auch bis auf einen Punkt. Das Start- und Enddatum wird in der Datenbank immer mit 0000-00-00 00:00:00 eingetragen, wenn man davor ein Datum in ISPConfig gesetzt hat, wird dieses gelöscht.

    Hier das Script welches mehr oder weniger dem Example entspricht.

    Code:
    <?php
    require('soap_config.php');
    
    $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 />';
            }
    
            //* Parameters
            $mailuser_id = 1;
            $client_id = 1;
    
            //* Get the email user record
            $mail_user_record = $client->mail_user_get($session_id, $mailuser_id);
    
            //* Change the status to inactive
            $mail_user_record['autoresponder'] = 'y';
            $mail_user_record['autoresponder_start_date'] = "2013-08-05 05:00:00";
            $mail_user_record['autoresponder_end_date'] = "2013-09-08 21:15:00";
            $mail_user_record['password'] = '';
            $mail_user_record['autoresponder_text'] = "Text ".mktime();
            $mail_user_record['autoresponder_subject'] = "Betreff ".mktime();
    
            $affected_rows = $client->mail_user_update($session_id, $client_id, $mailuser_id, $mail_user_record);
    
            echo "Number of records that have been changed in the database: ".$affected_rows."<br>";
    
            if($client->logout($session_id)) {
                    echo 'Logged out.<br />';
            }
    
    
    } catch (SoapFault $e) {
            echo $client->__getLastResponse();
            die('SOAP Error: '.$e->getMessage());
    }
    ?>
    
    Die Daten werden korrekt ausgelesen (mit $client->mail_user_get($session_id, $mailuser_id);), auch meine Werte werden korrekt übernommen, aber im Anschluß steht in der Datenbank dann direkt wieder 0000-00-00 00:00:00 drin, sowohl beim Start- als auch beim Enddatum.

    Das Script gibt folgendes aus:
    Trotz der Angabe, daß keine Records eine Änderung erfahren hätten werden die Texte korrekt aktualisiert in der Datenbank.

    Jemand eine Idee? Bin ich zu doof, oder handelt es sich hier einfach um einen bisher nicht entdeckten Bug?

    Danke schonmal vorab.

    Grüße


    TraceBln
     
  2. Till

    Till Administrator

  3. TraceBln

    TraceBln New Member

    Hallo Till,

    sorry für das späte Feedback, bin gerade erst zum testen gekommen. Super Hinweis und klappt. Etwas doof, daß man das date-Feld der Datenbank zurück bekommt und es dann als Array setzen muß, aber hauptsache es klappt! Danke!
     

Diese Seite empfehlen