1. ホーム
  2. パイソン

[解決済み】電子メールの添付ファイルを送信するには?

2022-03-26 22:52:14

質問

Pythonを使用して添付ファイルをメール送信する方法がわからず困っています。私は、単純なメッセージに smtplib . どなたか、メールに添付して送信する方法を教えてください。ネット上に他の投稿があるのは知っていますが、Python初心者の私には理解しがたいものです。

どのように解決するのですか?

こちらもどうぞ。

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()

最初の例とほとんど同じです...。でも、もっと簡単に落とせるはずです。