IFTTT - If This Than That

Für bis zu 5 "Applets" ist der Einsatz von IFTTT kostenfrei. Das reicht für die ersten Fehversuche mit Automatisierung aus der Cloud. Auf der Seite HTTP2SMTP habe ich mit einem einfachen PHP-Skript auf meiner Webseite bei einem Hoster gezeigt, wie ich auf einen HTTP-Request eine Mail sende. Wer keinen eigenen Webserver hat oder PHP sich nicht zutraut, kann vielleicht mit IFTTT glücklich werden.

Wer ist IFTTT

IFThistThanThat ist ein kommerzielle Angebot zur Automatisierung von Aufgaben aus der Cloud. Bis zu fünf Applets (Regeln) sind kostenfrei und wenn sie mehr Applets benötigen, dann kostet es eben Geld. Es gibt noch weitere Einschränkungen, z.B. dass ein Applet nur genau eine Aktion nutzen kann. Wenn Sie mehrere Aktionen addieren wollen, benötigen sich auch wieder ein "Pro"-Abonnement (2,50€/Monat Stand Nov 2022).

Sie müssen sich bei IFTTT natürlich mit ihrer Mailadresse und Kennwort oder auch Facebook, Google, Apple-Konto anmelden.

Ich bevorzuge hier die losgelöste Anmeldungen, um von den "großen IdentityProvidern" unabhängig zu bleiben, auch wenn ich dann eigene Zugangsdaten verwalten muss.

Ich habe mich angemeldet, um ein IoT-Device per HTTPS eine Aktion auszulösen, die ich auf dem IoT-Device selbst nicht ausführen konnte.

Webhook und Mail

Dazu habe ich in IFTTT ein Applet angelegt, welches einen Webhook als Eingabe verwendet und dann eine Mail versendet

https://ifttt.com/maker_webhooks
https://ifttt.com/applets/Zp6vmhJx-get-an-email-when-webhooks-publishes-a-new-trigger-or-action

Die Anlage des Applet war eine Sache von Sekunden und auch den Webhook konnte ich ohne weitere Parameter addieren und der Versand erfolgt direkt an die Mailadresse, welche ich zur Anmeldung verwendet haben. Ich musste also gar nichts weiter parametrisieren. Das bekommt jeder hin.

Webhook auslösen

Etwas kniffliger war es dann schon, bis ich dich URL und Zusatzinformationen ermittelt habe, wie ich denn den Webrequest absenden muss. Auf dem Webhook selbst gibt es gar keine Parameter weil IFTTT automatisch den Namen des Applet als Event nutzt und einen Key seöbst vorgibt. Der Aufruf mit bis zu drei Parametern ist dann wie folgt aufgebaut

https://maker.ifttt.com/trigger/{event}/with/key/{webhooks_key}?value1=value1&value2=value2&value3=value3"

Der "Event" ist der Name eines Applet und der Key wird von IFTTT vorgeben und ist zumindest nicht sofort zu finden.

Ich habe meinen Key letztlich hier gefunden

Mit dem Key und der Beschreibung aus der "Webhooks service FAQ" konnte ich dann einen HTTPS-Request erstellen:

Invoke-WebRequest "https://maker.ifttt.com/trigger/HeizungStoerung/with/key/g0tBHHt...............6UcjK?value1=value1"

Beim Aufruf kommt ein "200 OK" zurück.

Wenn ich einen falschen Key liefere, dann kommt einen "401 Unauthorized"-Fehler. Wenn ich mich aber beim "Event"-Namen vertippe, dann bekomme ich einen 200 OK, obwohl nicht passiert. IFTTT verrät damit also nicht, ob es eine gültiger Event ist.

Webhook kontrollieren

Alle Änderungen an dem Applet als auch die Durchläufe kann ich per Browser direkt einsehen:

Mail im Postfach

Da ich als Aktivität eine Mail an mein Postfach konfiguriert hatte, konnte ich in nahezu Echtzeit diese Mail finden

Anhand des Header ist zu sehen, dass die Mail direkt an mich gesendet wurde und der Absender ziemlich viel richtig macht.

  • Er nutzt "Webhooks via IFTTT <action@ifttt.com>" als Absender
    Das ist in Grunde eine gültige Adresse, die auch bestand hat. Ich kann als in meinem Spamfilter z.B. diese Adresse auf eine Allow-List stellen.
  • SPF leider nur "~all"
    Wenn Sie den SPF-Eintrag kontrollieren, dann gibt es einige erlaubte Absender aber die Policy ist nicht strikt. Das ist schade, da Empfänger, ohne DMARC-Support sich daran halten und auch Fälschungen möglich sind
C:\>nslookup -q=TXT ifttt.com

ifttt.com       text =
        "v=spf1 
         include:sendgrid.net 
         include:_spf.google.com 
         include:stspg-customer.com 
         include:customeriomail.com 
         include:mail.zendesk.com 
         include:spf.tapfiliate.com 
         ~all"
  • DMARC gesetzt
    Nur Empfänger, die zusätzlich DMARC unterstützen, sehen hier das p=reject
C:\>nslookup -q=TXT _dmarc.ifttt.com

Nicht autorisierende Antwort:
_dmarc.ifttt.com        text =
        "v=DMARC1; p=reject; rua=mailto:arqctnow@ag.dmarcian.com;"
  • DKIM
    Wenn Sie sich den Header anschauen, dann finden Sie auch eine DKIM-Signatur. Dies erleichtert die Weiterleitung an andere Postfächer, bei der SPF naturgemäß bricht.
Return-Path: <bounces+11142-47c9-frank=carius.de@emails.ifttt.com>
Authentication-Results:  kundenserver.de; dkim=pass header.i=@ifttt.com
Received: from o3.email.ifttt.com ([167.89.46.170]) by mx.kundenserver.de
 (mxeue012 [212.227.15.41]) with ESMTPS (Nemesis) id 1MJEhX-1of9Ex3Gfr-00Kiy4
 for <IFTTT@carius.de>; Sun, 13 Nov 2022 22:22:57 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ifttt.com;
	h=from:subject:mime-version:reply-to:to:content-type:
	content-transfer-encoding:cc;
	s=s1; bh=iLTQ0faLahypQtVhXiiT+RqZkPiQTKe7mvYgfKSKTtw=;
	b=mr0k0m1NyDHxx2rsxBJmFWrQL26IIfAR5TegAshmDHrglendKN9PlJ9GbEVXRZnJ1dDk
	oHeP3dLY65z7vD/PBLwnZi0lrZGGBiChQHIMa3yyJfdT9/jpTgVf3kV5CRY/+p+entqKLl
	XCBxTq9RBLmvx4pvUsrm4fTkT3T+LYE2RPWQN/1HctVsMKdR+9m1fx4dHlXPAVa3dmZF5e
	q5AGcr6XreykUgmtXBL3O5m5BUcaU4WOvRytRtpMBiG6vqGomtaixYiZaL571F2RoOWdAd
	jxFTXtR8lUcM3KMPUs/gp1eIcNmWuA8RBwoQmlyLb+fCO7/ZvjhRyh2lv3iNRcww==
Received: by filterdrecv-canary-778b4df694-4kmns with SMTP id filterdrecv-canary-778b4df694-4kmns-1-6371602E-75
        2022-11-13 21:22:54.642584207 +0000 UTC m=+265392.701486523
Received: from ifttt.com (unknown)
	by geopod-ismtpd-2-2 (SG) with ESMTP
	id ak10IPu9RESawIb4fw0D5A
	for <IFTTT@carius.de>;
	Sun, 13 Nov 2022 21:22:54.594 +0000 (UTC)
Date: Sun, 13 Nov 2022 21:22:54 +0000 (UTC)
From: Webhooks via IFTTT <action@ifttt.com>
Message-ID: <6371602e54f2f_82ad44c9a30f82309979e0@satellite-prod-sidekiq-dc7b456d5-5njtm.mail>
Subject: The event named "HeizungStoerung" occurred on the Maker Webhooks
 service
Mime-Version: 1.0
Reply-To: Do not reply <no-reply@ifttt.com>
To: IFTTT@carius.de
X-Entity-ID: XxoXvs/9BKaoMqrXgDUb3g==
Content-Type: multipart/alternative;
 boundary="--==_mimepart_6371602e542c8_82ad44c9a30f82309978ce";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Envelope-To: <IFTTT@carius.de>

Einschätzung

IFTTT kann natürlich noch viel mehr Quellen anzapfen und Aktionen auslösen. Vielleicht haben Sie einen "Smarten" Regensensor, der bei Regen den Rasenmäher in die Garage schickt u.a. Das kann auch über verschiedene Hersteller hinweg funktionieren. Aber selbst wenn Sie nur ein paar HTTP-Aufrufe zu einer Mail umsetzen wollen, können sie mit dem kostenfreien IFTTT-Plan auf jeden Fall starten.

Weitere Links