Seite 1 von 1

Re: API / SendInFutureOnce - Probleme

Verfasst: 29.01.2020, 12:21
von marcmueller
Gelöst.

Scheinbar ist auch die Reihenfolge wichtig:

Ich hatte

Code: Alles auswählen

api_Campaigns.api_setCampaignSendSchedulerSettings
vor dem Festlegen des Textes:

Code: Alles auswählen

api_Campaigns.api_setCampaignMailText
In der folgenden Reihenfolge funktioniert es:

Code: Alles auswählen

$campaignID = $client->call('api_Campaigns.api_createCampaign', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignEMailAddressSettings', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignMailText', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignSendSchedulerSettings', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_sendCampaignNow', $params, '', '', false, true);
Besten Dank & LG Marc

Re: API / SendInFutureOnce - Probleme

Verfasst: 23.01.2020, 10:31
von marcmueller
Dankesehr!

Ich mache mich mal auf die Fehlersuche bei mir.

Lg, Marc

Re: API / SendInFutureOnce - Probleme

Verfasst: 15.01.2020, 12:29
von mirko
Habe mich nun hingesetzt und das nachgebaut, funktioniert einwandfrei. Immer auf Fehler prüfen, nicht einfach aufrufen und die Fehler ignorieren. Funktionierendes Beispiel anbei, das wird in Zukunft bei SuperWebMailer im api-Verzeichnis als nusoap_sample1.php mit dabei sein.

Re: API / SendInFutureOnce - Probleme

Verfasst: 15.01.2020, 10:38
von marcmueller
Hi Mirko!

Genau so mache ich es: Hier nochmals die calls, die ich übergebe:

Code: Alles auswählen

$params = array();
    $params['apiCampaignsId'] = $campaignID;
    # Testmails sofort schicken
    if ($form_state['values']['schedule'] == 0) { 
        $params['apiSendSchedulerSetting'] = 'SendImmediately';
        $params['apiSendInFutureOnceDateTime'] = array();
    }
    #2=Sofort schicken
    if ($form_state['values']['schedule'] == 2) { 
        $params['apiSendSchedulerSetting'] = 'SendImmediately';
        $params['apiSendInFutureOnceDateTime'] = array();
    } 
    #3=In Zukunft schicken
    if ($form_state['values']['schedule'] == 3) { 
        $params['apiSendSchedulerSetting'] = 'SendInFutureOnce';
        $params['apiSendInFutureOnceDateTime'] = $senddate;
    }
    $params['apiSendInFutureMultipleDays'] = array();
    $params['apiSendInFutureMultipleDayNums'] = array();
    $params['apiSendInFutureMultipleMonths'] = array();
    $params['apiSendInFutureMultipleTime'] = array();
    $params['apiMaxEMailsToProcess'] = 100;
    
    $result = $client->call('api_Campaigns.api_setCampaignSendSchedulerSettings', $params, '', '', false, true);
    unset($params);
der Aufruf:
apiCampaignsId (Integer) 236
apiSendSchedulerSetting (String, 16 characters ) SendInFutureOnce
apiSendInFutureOnceDateTime (String, 19 characters ) 2020-01-31 12:00:00
apiSendInFutureMultipleDays (Array, 0 elements)
apiSendInFutureMultipleDayNums (Array, 0 elements)
apiSendInFutureMultipleMonths (Array, 0 elements)
apiSendInFutureMultipleTime (Array, 0 elements)
apiMaxEMailsToProcess (Integer) 100
und dann:

Code: Alles auswählen

    $params = array('apiCampaignsId' => $campaignID,);
    $result = $client->call('api_Campaigns.api_sendCampaignNow', $params, '', '', false, true);
liefert:
apiCampaignsId (Integer) 236
Die anderen API Calls habe ich jetzt nicht aufgelistet, da die funktionieren.
Der Reihe nach rufe ich folgende auf:
$campaignID = $client->call('api_Campaigns.api_createCampaign', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignEMailAddressSettings', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignSendSchedulerSettings', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_setCampaignMailText', $params, '', '', false, true);
$result = $client->call('api_Campaigns.api_sendCampaignNow', $params, '', '', false, true);
Die Mails werden alle so generiert wie ich möchte, auch die Settings zu SaveOnly und SendImmediately funktionieren, nur SendInFutureOnce will nicht.
Fehlt da etwas? Wo könnte ich nachsehen, was das Problem ist?

Danke & LG, Marc

Re: API / SendInFutureOnce - Probleme

Verfasst: 14.01.2020, 13:45
von mirko
So z.B. für Versand am 1.3.2020 14:05 Uhr angeben

Code: Alles auswählen

$params = array("apiCampaignsId" => 91, "apiSendSchedulerSetting" => 'SendInFutureOnce', "apiSendInFutureOnceDateTime" => '2020-03-01 14:05:00', "apiSendInFutureMultipleDays" => array(), "apiSendInFutureMultipleDayNums" => array(), "apiSendInFutureMultipleMonths" => array(), "apiSendInFutureMultipleTime" => array(), "apiMaxEMailsToProcess" => 200);

$result = $client->call('api_Campaigns.api_setCampaignSendSchedulerSettings', $params, '', '', false, true);
danach

Code: Alles auswählen

$params = array("apiCampaignsId" => 91);
$result = $client->call('api_Campaigns.api_sendCampaignNow', $params, '', '', false, true);

Re: API / SendInFutureOnce - Probleme

Verfasst: 13.01.2020, 15:20
von marcmueller
Hm genau das mache ich eigentlich.

Das ist mein letzter API call:
$params = array('apiCampaignsId' => $campaignID,);
$result = $client->call('api_Campaigns.api_sendCampaignNow', $params);

/*
apiCampaignsId (Integer) 224
*/
Stimmt das Datumsformat? Wo könnte der Fehler noch liegen?

Lg, Marc

Re: API / SendInFutureOnce - Probleme

Verfasst: 13.01.2020, 14:53
von mirko
Für den eigentlichen Versand api_Campaigns.api_sendCampaignNow aufrufen, erst dann wird der Status auf "für Versand vorgesehen" geändert. Vorher müssen immer alle Parameter für den E-Mail-Text und auch Versanddatum-/zeit gesetzt werden.

API / SendInFutureOnce - Probleme

Verfasst: 13.01.2020, 13:45
von marcmueller
Hallo!

Ich versuche über die API den Versand einer Kampagne in Zukunft einzustellen.

Folgende Parameter übergebe ich über die Funktion api_Campaigns.api_setCampaignSendSchedulerSettings:
apiCampaignsId (Integer) 224
apiSendSchedulerSetting (String, 16 characters ) SendInFutureOnce
apiSendInFutureOnceDateTime (String, 19 characters ) 2020-01-31 12:00:00
apiSendInFutureMultipleDays (String, 0 characters )
apiSendInFutureMultipleDayNums (String, 0 characters )
apiSendInFutureMultipleMonths (String, 0 characters )
apiSendInFutureMultipleTime (String, 0 characters )
apiMaxEMailsToProcess (Integer) 100

Im Backend habe ich dann aber immer "Nur speichern" als Status..
Mache ich da was falsch?

Lg, Marc