Newsletter mit Inhalten aus einem RSS-Feed automatisiert versenden

Newsletter mit Inhalten aus einem RSS-Feed automatisiert versenden

Einleitung

Du kannst deine Newsletter-Abonnenten automatisch über die API mit Mailings versorgen – zum Beispiel immer dann, wenn deinem RSS-Feed ein neuer Artikel hinzugefügt wird.
In diesem Artikel zeigen wir dir Schritt für Schritt, wie du deinen Newsletter-Abonnenten automatisiert den neuesten Artikel aus deinem Feed zuschickst. 

Info
Für regelmäßig wiederkehrende Mailings mit RSS-Inhalten kannst du auch unseren Scheduler verwenden. Schreib an service@mailingwork.de, um mehr darüber zu erfahren.

Schritte

1. E-Mail Template vorbereiten

Du benötigst ein E-Mail-Template mit RSS-Integration. Welche Feeds vom RSS-Modul unterstützt werden und wie du diese integrierst, erfährst du in diesem Artikel. Dort findest du auch ein einfaches Beispiel-Template.

In Kurzform:
Damit deine RSS-Artikel automatisch dem Mailing hinzugefügt werden müssen am Container bestimmte RSS-spezifische Attribute vorhanden sein:
  1. [CONTAINER name='content' label='Content' feed-url='https://www.spiegel.de/schlagzeilen/tops/index.rss' autofeed='true' max-contents='1' ]
  1. feed-url: Die URL deines RSS-Feeds
  2. autofeedtrue = Die Feed-Inhalte werden dem Mailing automatisch hinzugefügt.
  3. max-contents: Die maximale Anzahl der zu ladenden RSS-Elemente. Da nur der neueste Artikel versendet werden soll, ist max-contents='1'.
Am Element für die RSS-Artikel aktivierst du die RSS-Integration durch feedable='true':
  1. [ELEMENT name='artikel' feedable='true']

2. Skript umsetzen

Dein Skript könnte regelmäßig per Cronjob ausgeführt werden. Es sollte folgende Schritte ausführen:

1. Vor dem ersten Versand:
  1. Einen aktuellen Zeitstempel als last_mailing speichern (z. B. in einer Datei oder Datenbank).
2. Bei jedem Aufruf:
  1. Prüfen, ob im RSS-Feed ein Artikel mit Zeitstempel neuer als last_mailing vorhanden ist.
  2. Wenn ja:
    1. E-Mail erstellen (CreateEmail).
    2. E-Mail versenden (ActivateEmail).
    3. Den Zeitstempel der Versendung als neuen last_mailing speichern.
Auf die beiden Funktionen CreateEmail und ActivateEmail gehen wir im Folgenden genauer ein.

Das Mailing erstellen: API-Funktion CreateEmail

Du benötigst ein Template-basiertes Mailing vom Typ Standard-Mail. Der RSS-Feed-Inhalt wird bei Verwendung von autofeed='true' einmalig zum Versandzeitpunkt eingelesen.

 Pflichtparameter: username, password, listId, targetgroupId, subject, senderEmail, senderName
  1. Die Abonnentenliste wird mit listId festegelgt. Es können mehrere Listen-Ids kommagetrennt angegeben werden.
  2. Mit targetgroupId lässt sich der Empfängerkreis auf die angegebenen Zielgruppe einschränken. Lasse den Wert leer, wenn du keine Einschränkung benötigst. Es können mehrere Zielgruppen-Ids kommagetrennt angegeben werden.
  3. Für unseren Use Case geben wir zusätzlich mit dem Parameter templateId die Id unseres RSS-fähigen E-Mail-Templates an. 
  4. Der Standardwert Parameters advanced['behavior'] ist "standard" und kann daher weggelassen werden.
PHP Beispiel – Einfacher HTTP-Request mit JSON-Rückgabe
  1. $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://webservice.sendnode.com/webservice/webservice/json/createemail');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(
    array (
        'username' => '<YOUR USERNAME>',
        'password' => '<YOUR PASSWORD>',
        'listId' => '1',
        'targetgroupId' => '',
        'subject' => 'Neuer Blog-Artikel',
        'senderEmail' => marketing@example.com',
        'senderName' => 'Max Mustermann',
        'templateId' => 1111,
        'advanced' => 
            array (
              'behavior' => 'standard',
          ),
    )));
    $result = json_decode(curl_exec($ch), true);

Beispiel – Response
  1. {"error":0,"message":"successfully executed","result":2549}

Der Wert von result liefert die Id des erstellten Mailings. Diese benötigen wir im nächsten Schritt, um das Mailing zu versenden.

Das Mailing versenden: API-Funktion ActivateEmail

Das Verhalten der Funktion hängt vom Typ des Mailings ab:
  1. Standard-Mail: Das Mailing wird versendet.
  2. Dialog- und Kampagnen-Mail: Das Mailing wird aktiviert.

Da wir im vorherigen Schritt ein Mailing vom Typ Standard-Mail erzeugt haben, wird durch den Aufruf der Funktion der Versand ausgelöst.

Pflichtparameter: username, password, emailId
PHP Beispiel – Einfacher HTTP-Request mit JSON-Rückgabe
  1. $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://webservice.sendnode.com/webservice/webservice/json/activateemail');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(
    array (
        'username' => '<YOUR USERNAME>',
        'password' => '<YOUR PASSWORD>',
        'emailId' => 2551,
    )));
    $result = json_decode(curl_exec($ch), true);

Beispiel – Response
  1. {"error":0,"message":"successfully executed"}

Nach dem erfolgten Versand findest du dein Mailing über die Oberfläche im Archiv (Menü: Archiv > E-Mail).