Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menghantar Lampiran E-mel Menggunakan smtplib Python?

Bagaimana untuk Menghantar Lampiran E-mel Menggunakan smtplib Python?

Barbara Streisand
Lepaskan: 2024-12-17 00:16:25
asal
645 orang telah melayarinya

How to Send Email Attachments Using Python's smtplib?

Menghantar Lampiran dengan smtplib Python

Menghantar e-mel dengan smtplib Python adalah mudah, tetapi menyertakan lampiran mungkin kelihatan agak samar untuk pemula. Berikut ialah penjelasan yang mudah untuk membantu anda menguasai tugasan ini.

Coretan Kod:

Mari kita mulakan dengan kod mudah coretan:

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()
Salin selepas log masuk

Penjelasan:

  1. MIMEMultipart: Mesej MIME menyokong berbilang bahagian MIME dan membentuk lapisan paling luar.
  2. MIMEText: Badan e-mel ialah dicipta sebagai MIMEText yang mengandungi teks.
  3. MIMEApplication: Fail yang akan dilampirkan dianggap sebagai MIMEApplication dan namanya diekstrak menggunakan basename(f).
  4. Pelupusan Kandungan: Medan ini mengkonfigurasi pengendalian lampiran oleh pelanggan e-mel, menyatakannya sebagai lampiran dengan namanya.
  5. SMTP: Objek SMTP disediakan untuk menyambung ke pelayan mel ("127.0.0.1" secara lalai).
  6. sendmail: E-mel dihantar menggunakan kaedah sendmail dengan pengirim, penerima dan mesej.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Lampiran E-mel Menggunakan smtplib Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan