This content originally appeared on Twilio Blog and was authored by Nathaniel Okenwa
Hallo und Danke fürs Lesen! Dieser Blogpost ist eine Übersetzung von Sending Email Attachments with Twilio SendGrid and Python. Während wir unsere Übersetzungsprozesse verbessern, würden wir uns über Dein Feedback an help@twilio.com freuen, solltest Du etwas bemerken, was falsch übersetzt wurde. Wir bedanken uns für hilfreiche Beiträge mit Twilio Swag :)
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:
virtualenv emails
Aktiviere dann die virtuelle Umgebung:
source ./emails/bin/activate
Installiere SendGrid Python-Hilfebibliothek in virtualenv:
pip install sendgrid
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:
import os
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
message = Mail(
from_email='from_email@example.com',
to_emails='to@example.com',
subject='Sending with Twilio SendGrid is Fun',
html_content='<strong>and easy to do anywhere, even with Python</strong>')
sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
response = sg.send(message)
print(response.status_code, response.body, response.headers)
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.
import os
import base64
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import (Mail, Attachment, FileContent, FileName, FileType, Disposition)
message = Mail(
from_email='from_email@example.com',
to_emails='to@example.com',
subject='Sending with Twilio SendGrid is Fun',
html_content='<strong>and easy to do anywhere, even with Python</strong>'
)
with open('attachment.pdf', 'rb') as f:
data = f.read()
f.close()
encoded_file = base64.b64encode(data).decode()
attachedFile = Attachment(
FileContent(encoded_file),
FileName('attachment.pdf'),
FileType('application/pdf'),
Disposition('attachment')
)
message.attachment = attachedFile
sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
response = sg.send(message)
print(response.status_code, response.body, response.headers)
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:
python send_email.py
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
This content originally appeared on Twilio Blog and was authored by Nathaniel Okenwa
Nathaniel Okenwa | Sciencx (2021-06-24T15:08:42+00:00) Senden von E-Mail-Anhängen mit Twilio SendGrid und Python. Retrieved from https://www.scien.cx/2021/06/24/senden-von-e-mail-anhangen-mit-twilio-sendgrid-und-python/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.