Andere Antworten sind ausgezeichnet, obwohl ich immer noch eine andere Herangehensweise teilen wollte, falls jemand nach Alternativen sucht.
Der Hauptunterschied hier ist, dass Sie mit diesem Ansatz HTML/CSS verwenden können, um Ihre Nachricht zu formatieren, sodass Sie kreativ werden und Ihrem E-Mail etwas Stil geben können. Sie sind jedoch nicht dazu verpflichtet, HTML zu verwenden, Sie können auch nur reinen 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 in Python 2 ausprobiert, aber ich denke, es sollte auch in 3 gut funktionieren:
import os.path
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
def send_email(subject, message, from_email, to_email=[], attachment=[]):
"""
:param subject: E-Mail-Betreff
:param message: Inhalt des E-Mail-Body (String), kann HTML/CSS oder reiner Text sein
:param from_email: E-Mail-Adresse, von der die E-Mail gesendet wird
:param to_email: Liste der E-Mail-Empfänger, Beispiel: ["a@a.com", "b@b.com"]
:param attachment: Liste von Anhängen, Beispiel: ["file1.txt", "file2.txt"]
"""
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = from_email
msg['To'] = ", ".join(to_email)
msg.attach(MIMEText(message, 'html'))
for f in attachment:
with open(f, 'rb') as a_file:
basename = os.path.basename(f)
part = MIMEApplication(a_file.read(), Name=basename)
part['Content-Disposition'] = 'attachment; filename="%s"' % basename
msg.attach(part)
email = smtplib.SMTP('Ihr-SMTP-Host-Name.com')
email.sendmail(from_email, to_email, msg.as_string())
Ich hoffe, das hilft! :-)
6 Stimmen
Hier ist eine einfache Implementierung, die mehrere Dateien anhängen kann und sogar in Bezug auf Bilder eingebettet werden kann. datamakessense.com/…
0 Stimmen
Ich fand das nützlich drupal.org/project/mimemail/issues/911612 stellt sich heraus, dass Bilddateianhänge an einen damit verbundenen Typ-Kindteil angehängt werden müssen. Wenn Sie das Bild an den Wurzel-MIME-Teil anhängen, können die Bilder in der Liste der angehängten Elemente angezeigt und in Clienten wie Outlook365 vorab angezeigt werden.