Heim >Backend-Entwicklung >Python-Tutorial >Wie sende ich E-Mail-Anhänge mit Pythons smtplib?

Wie sende ich E-Mail-Anhänge mit Pythons smtplib?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 00:16:25643Durchsuche

How to Send Email Attachments Using Python's smtplib?

Anhänge mit Pythons smtplib senden

E-Mails mit Pythons smtplib senden ist ein Kinderspiel, aber das Einfügen von Anhängen kann für Anfänger etwas kryptisch wirken. Hier ist eine einfache Erklärung, die Ihnen hilft, diese Aufgabe zu meistern.

Code-Snippet:

Beginnen wir mit einem einfachen Code Snippet:

import smtplib
from os.path import basename
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate

def send_mail(send_from, send_to, subject, text, files=None,
              server="127.0.0.1"):
    assert isinstance(send_to, list)

    msg = MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = COMMASPACE.join(send_to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach(MIMEText(text))

    for f in files or []:
        with open(f, "rb") as fil:
            part = MIMEApplication(
                fil.read(),
                Name=basename(f)
            )
        # After the file is closed
        part['Content-Disposition'] = 'attachment; filename="%s"' % basename(f)
        msg.attach(part)


    smtp = smtplib.SMTP(server)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

Erklärung:

  1. MIMEMultipart: MIME-Nachrichten unterstützen mehrere MIME-Teile und bilden die äußerste Schicht.
  2. MIMEText: Der E-Mail-Text wird als erstellt MIMEText, der den Text enthält.
  3. MIMEApplication: Die anzuhängende Datei wird als MIMEApplication behandelt und ihr Name wird mithilfe von basename(f) extrahiert.
  4. Content- Disposition: Dieses Feld konfiguriert die Verarbeitung des Anhangs durch E-Mail-Clients und gibt ihn als Anhang mit an Name.
  5. SMTP: Ein SMTP-Objekt ist für die Verbindung mit einem Mailserver eingerichtet (standardmäßig „127.0.0.1“).
  6. sendmail: Die E-Mail wird mit der Sendmail-Methode mit Absender, Empfängern und Nachricht versendet.

Das obige ist der detaillierte Inhalt vonWie sende ich E-Mail-Anhänge mit Pythons smtplib?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn