【Python3】メールの添付ファイルにBytesIOを設定する方法
おはこんばんにちは、せなです。
今回は、メール(SMTP)にBytesIOの添付ファイルを設定する方法を備忘録として残したいと思います。
コード
Pillowを使用して読み込んだ画像を添付する想定で説明します。
def pil_to_bytes(img, format="jpeg"):
from io import BytesIO
buffer = BytesIO()
img.save(buffer, format)
return buffer
def smpt_send(buf):
from email.message import EmailMessage
import smtplib, ssl
account = "アカウントメールアドレス"
password = "アカウントパスワード"
msg = EmailMessage()
msg["Subject"] = "表題"
msg["To"] = "宛先"
msg["From"] = "差出人"
msg.set_content("本文")
if buf != "":
buf.seek(0)
bytes_data = buf.read()
# 画像の添付
msg.add_attachment(bytes_data, maintype='image', subtype='jpeg', filename='image.jpg')
# SMTPサーバーの設定
server = smtplib.SMTP("サーバーuri", 587)
server.login(account, password)
server.send_message(msg)
server.quit()
if __name__=="__main__":
from PIL import Image
img = Image.open("hoge.jpg")
buf = pil_to_bytes(img)
smpt_send(buf)
ディスカッション
コメント一覧
まだ、コメントがありません