RPC-Schnittstelle Regel zu neuer Email hinzufügen (Zeitversetzter Versand)

  • Hallo zusammen,
    wir nutzen die Greyhound-API, um Emails über unser Shop-Backend zu versenden. Da der ein oder anderen MA auch mal recht spät Abends Emails abarbeitet, würde ich dort gerne einfach seinen Emails die Regel "Zeitversetzter Versand" über die Schnittstelle hinzufügen. Ich finde zwar Variable $Rules, bin jedoch etwas aufgeschmissen, wie ich das Array fülle. Kann mir Jemand dabei helfen?


    Etwas vereinfacht sieht mein Skript so aus:
    $email = rpc_itemslib::newRpcDetailedItem(true);
    $email->Kind = rpc_itemslib::ikEmail;
    $email->State = rpc_itemslib::isNew;
    $email->From->Text = 'FoxxShirts.de <info@foxxshirts.de>';
    $email->Subject = $_POST['Subject'];
    $email->Recipients = array($recipient); // Empfänger hinzufügen
    $attachment = "files/belege/" . $_POST['Belegart'] . "_" . $_POST['Belegnummer'] . ".pdf";
    $client->uploadItemNewAttachment($emailId, file_get_contents($attachment), basename($attachment));


    Jetzt würde ich gerne die Regel irgendwie so hinzufügen:
    $email->Rules = (regelid, datum/uhrzeit) // datum = wann die email versendet werden soll


    Vielen Dank für die Unterstützung.


    Gruß, Steffen

  • Soweit ich die API kenne, geht das denke ich so nicht..


    Alternativ aber könntest einfach die Regel zeitgesteurt mit einem Filter laufen lassen.


    Also einfach Mails als wartend anlegen und einen Filter auf die wartenden Mails anlegen und dann die Regel zeitgesteuert mit dem Filter laufen lassen.

  • Hallo,


    der Weg ist richtig. Die neue E-Mail sollte das Flag "ifWaiting" erhalten, damit kein Versand stattfindet. Nun eine Regel anlegen, welche das Flags bzw. die Eigenschaft ifWaiting entfernt. Die Regel wird dann über $email->Rules mittels ID festgelegt. Der Zeitversetzte Versand erfolgt nun, indem der Zeitstempel $email->NextWorkflow auf den gewünschten Zeitpunkt gesetzt wird. Sprich die Regel wird zum Zeitpunkt NextWorkflow ausgeführt.


    Die von RaphaelH vorgeschlagene Lösung funktioniert aber auch. Auch hier braucht es die Eigenschaft ifWaiting. Die Regel ist die selbe. Beide Varianten haben Ihre Vorzüge. Bei der einen kann der Zeitpunkt jeweils manuell festgelegt werden, bei der anderen kann die Zeitsteuerung von GREYHOUND aus angepasst werden.