API / SendInFutureOnce - Probleme

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
marcmueller
Beiträge: 21
Registriert: 22.08.2016, 10:34

Re: API / SendInFutureOnce - Probleme

Beitrag von marcmueller » 29.01.2020, 12:21

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

marcmueller
Beiträge: 21
Registriert: 22.08.2016, 10:34

Re: API / SendInFutureOnce - Probleme

Beitrag von marcmueller » 23.01.2020, 10:31

Dankesehr!

Ich mache mich mal auf die Fehlersuche bei mir.

Lg, Marc

Benutzeravatar
mirko
Beiträge: 21889
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: API / SendInFutureOnce - Probleme

Beitrag von mirko » 15.01.2020, 12:29

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.
Dateianhänge
_test.zip
(1.69 KiB) 4-mal heruntergeladen

marcmueller
Beiträge: 21
Registriert: 22.08.2016, 10:34

Re: API / SendInFutureOnce - Probleme

Beitrag von marcmueller » 15.01.2020, 10:38

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

Benutzeravatar
mirko
Beiträge: 21889
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: API / SendInFutureOnce - Probleme

Beitrag von mirko » 14.01.2020, 13:45

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);

marcmueller
Beiträge: 21
Registriert: 22.08.2016, 10:34

Re: API / SendInFutureOnce - Probleme

Beitrag von marcmueller » 13.01.2020, 15:20

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

Benutzeravatar
mirko
Beiträge: 21889
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: API / SendInFutureOnce - Probleme

Beitrag von mirko » 13.01.2020, 14:53

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.

marcmueller
Beiträge: 21
Registriert: 22.08.2016, 10:34

API / SendInFutureOnce - Probleme

Beitrag von marcmueller » 13.01.2020, 13:45

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

Antworten