Ich habe Probleme beim Verstehen, wie ein Anhang mit Python per E-Mail versendet wird. Ich habe erfolgreich einfache Nachrichten mit dem per E-Mail verschickt smtplib
. Könnte jemand bitte erklären, wie man einen Anhang in einer E-Mail sendet. Ich weiß, dass andere Beiträge online sind, aber als Python-Anfänger finde ich sie schwer zu verstehen.
282
Antworten:
Hier ist ein anderes:
Es ist fast das gleiche wie im ersten Beispiel ... Aber es sollte einfacher sein, vorbeizuschauen.
quelle
file
in geändertf
.part = MIMEApplication(open(f, 'rb').read())
Hier ist die modifizierte Version von
Oli
für Python 3quelle
import pathlib
durchfrom pathlib import Path
Dies ist der Code, den ich letztendlich verwendet habe:
Code ist ähnlich wie Olis Post. Vielen Dank an alle
Code basierend auf dem Problembeitrag zum E-Mail-Anhang einer Binärdatei .
quelle
from email.mime.base import MIMEBase
Von hier aus angepasst .
quelle
smtplib
unterstützt. Um Anhänge zu senden, codieren Sie sie als MIME-Nachricht und senden sie in einer Klartext-E-Mail. Es gibt jedoch ein neues Python-E-Mail-Modul: docs.python.org/library/email.mime.htmlmsg.as_string()
es mir angesehen und es sieht auf jeden Fall aus wie der Körper einer mehrteiligen MIME-E-Mail. Wikipedia erklärt MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Ein anderer Weg mit Python 3 (wenn jemand sucht):
Stellen Sie sicher, dass in Ihrem Google Mail-Konto " weniger sichere Apps " zulässig sind
quelle
Google Mail-Version, die mit Python 3.6 funktioniert (Beachten Sie, dass Sie Ihre Google Mail-Einstellungen ändern müssen, um E-Mails über SMTP von dort aus senden zu können:
Verwendungszweck:
Um es mit einem anderen E-Mail-Anbieter zu verwenden, ändern Sie einfach die SMTP-Konfigurationen.
quelle
Der einfachste Code, den ich bekommen könnte, ist:
Es basierte auf der offiziellen Django-Dokumentation
quelle
Andere Antworten sind ausgezeichnet, obwohl ich immer noch einen anderen Ansatz teilen wollte, falls jemand nach Alternativen sucht.
Der Hauptunterschied besteht darin, dass Sie mit diesem Ansatz HTML / CSS zum Formatieren Ihrer Nachricht verwenden können, um kreativ zu werden und Ihrer E-Mail etwas Stil zu verleihen. Obwohl Sie nicht gezwungen sind, HTML zu verwenden, können Sie auch nur einfachen Text verwenden.
Beachten Sie, dass diese Funktion das Senden der E-Mail an mehrere Empfänger akzeptiert und auch das Anhängen mehrerer Dateien ermöglicht.
Ich habe dies nur auf Python 2 versucht, aber ich denke, es sollte auch auf 3 gut funktionieren:
Ich hoffe das hilft! :-)
quelle
Zur Erklärung können Sie diesen Link verwenden, der ordnungsgemäß erklärt wird: https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
quelle
quelle
Unten finden Sie eine Kombination aus dem, was ich aus dem Beitrag von SoccerPlayer hier und dem folgenden Link gefunden habe, der mir das Anhängen einer XLSX-Datei erleichtert hat. Hier gefunden
quelle
Mit meinem Code können Sie E-Mail-Anhänge mit Google Mail senden, die Sie benötigen:
Stellen Sie Ihre Google Mail-Adresse auf " IHRE SMTP- E-MAIL HIER " ein.
Legen Sie Ihr Passwort für das Google Mail-Konto auf " IHR SMTP-PASSWORT HIER_ " fest.
Im Teil ___EMAIL TO RECEIVE THE MESSAGE_ müssen Sie die Ziel-E-Mail-Adresse festlegen.
Alarmbenachrichtigung ist das Thema,
Jemand hat den Raum betreten, Bild beigefügt ist der Körper
["/home/pi/webcam.jpg"] ist ein Bildanhang .
quelle
Sie können auch den gewünschten Anhangstyp in Ihrer E-Mail angeben. Als Beispiel habe ich pdf verwendet:
Inspirationen / Credits an: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
quelle