Senden von E-Mail-Anhängen mit Twilio SendGrid und Python
Lesezeit: 2 Minuten
Du versendest E-Mails über deine Python-App mit der Twilio SendGrid-API und möchtest Dateien an deine E-Mails anhängen? Mit der Twilio SendGrid-API ist das Senden von E-Mail-Anhängen ein Kinderspiel. In diesem Blog fügen wir ein PDF-Dokument an eine E-Mail an, die über SendGrid gesendet wird. Wenn du bislang noch keine E-Mails mit SendGrid versendet hast, empfehle ich dir den Post, den mein Kollege Sam dazu verfasst hat. Wir setzen an der Stelle an, an der dieser Post endet.
Voraussetzungen
Bevor wir beginnen, benötigen wir Folgendes:
- Python 2 oder 3 (falls noch nicht installiert, müssen wir das zuerst erledigen)
- Ein kostenloses Twilio SendGrid-Konto
- Die Twilio SendGrid-Python-Bibliothek ist im Projekt installiert
Einrichtung
Falls noch nicht getan, musst du dich für ein kostenloses SendGrid-Konto registrieren. Für dieses Tutorial ist die kostenlose Option ausreichend. Nachdem wir unser Konto eingerichtet haben, erstellen wir einen API-Schlüssel. Wir können ihm einen beliebigen Namen geben, aber wir brauchen ihn später noch.
Das Ganze sollte so aussehen.
Eine gute Idee ist es, diesen API-Schlüssel beim Speichern als Umgebungsvariable festzulegen, auf die wir über unseren Python-Code zugreifen können. Dadurch vermeiden wir, ihn direkt in unseren Code schreiben zu müssen. Wir legen den Wert der Umgebungsvariablen SENDGRID_API_KEY
auf den API-Schlüssel unseres SendGrid-Kontos fest. In diesem Tutorial wird anschaulich beschrieben, wie Umgebungsvariablen festgelegt werden. Davon machen wir später noch Gebrauch.
Virtuelle Umgebung
Du kannst den Code aus diesem Post in einer isolierten Python-Umgebung ausführen. Wenn du nicht genau weißt, was eine virtuelle Umgebung ist, dann hilft dir dieser Post zu virtuellen Umgebungen garantiert weiter. So richtest du das Ganze ein.
Installiere zuerst das virtualenv-Paket und führe den folgenden Befehl aus:
Aktiviere dann die virtuelle Umgebung:
Installiere SendGrid Python-Hilfebibliothek in virtualenv:
Senden von E-Mails
Wir setzen an der Stelle an, an der der Blogpost meines Kollegen endet, und senden eine E-Mail. Wir sollten eine send_email.py
-Datei haben, die in etwa so aussieht:
Wir verwenden das Python base64-Modul, um unsere Datei zu lesen und als base64-Zeichenfolge zu codieren. Ich habe die fiktive Datei attachment.pdf
verwendet. Wir müssen also sicherstellen, dass wir den Namen der Datei durch ein Dokument ersetzen, das wir im selben Ordner wie die send_email.py
-Datei gespeichert haben.
Wir erstellen einen Anhang mit den Twilio SendGrid-Hilfebibliotheken. Starten wir mit einer einzelnen attachment.pdf.
Bevor wir diesen Code ausführen, müssen wir sicherstellen, dass wir die Umgebungsvariable SENDGRID_API_KEY festgelegt haben. Außerdem müssen wir noch den Wert to_emails
durch unsere eigene E-Mail-Adresse ersetzen, damit wir überprüfen können, ob unser Code auch ordnungsgemäß funktioniert.
Schließlich speichern wir unseren Code und führen im Terminal den folgenden Befehl aus, um eine E-Mail an uns selbst zu senden:
Wenn wir jetzt in unserem Posteingang nachsehen, sollten wir in etwa Folgendes sehen.
Zusammenfassung
Jetzt wissen wir, wie wir E-Mails mit Anhängen über Twilio SendGrid senden, aber die API bietet noch so viel mehr Möglichkeiten. In der Dokumentation zu SendGrid findest du jede Menge weitere nützliche Funktionen und Verwendungen.
Ich freue mich immer über Fragen und würde gern erfahren, was du mit Twilio entwickelst. Ich bin gespannt.
- Twitter: @ChatterboxCoder
- Instagram: @ChatterboxCoder
- E-Mail: nokenwa@twilio.com
Verwandte Posts
Ähnliche Ressourcen
Twilio Docs
Von APIs über SDKs bis hin zu Beispiel-Apps
API-Referenzdokumentation, SDKs, Hilfsbibliotheken, Schnellstarts und Tutorials für Ihre Sprache und Plattform.
Ressourcen-Center
Die neuesten E-Books, Branchenberichte und Webinare
Lernen Sie von Customer-Engagement-Experten, um Ihre eigene Kommunikation zu verbessern.
Ahoy
Twilios Entwickler-Community-Hub
Best Practices, Codebeispiele und Inspiration zum Aufbau von Kommunikations- und digitalen Interaktionserlebnissen.