PythonでHTML形式のメールを送信する方法について説明します。この記事では、email.message
モジュールのEmailMessage
クラスを使用してメールを作成し、そのメールをSMTPサーバーを通じて送信する方法を示します。
EmailMessageを使用したメールの作成
Python3.6以降、email.message
モジュールにEmailMessage
クラスが追加されました。このクラスを使用すると、メッセージの作成がより簡単になります。以下に、EmailMessage
を使用してメールを作成し、そのメールを送信するコードの例を示します。
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'Subject'
msg.add_alternative('Hello, world.', subtype='text')
msg.add_alternative('<h1>Hello, world.</h1>', subtype='html')
with smtplib.SMTP('SMTP_HOST', 'SMTP_PORT') as smtp:
smtp.starttls()
smtp.login('USER', 'PASSWORD')
smtp.send_message(msg)
このコードでは、まずEmailMessage
のインスタンスを作成し、そのインスタンスに対して送信者、受信者、件名を設定します。その後、add_alternative
メソッドを使用して、テキスト形式とHTML形式の両方の本文をメッセージに追加します。
メールの送信
メールの送信にはSMTP
クラスを使用します。このクラスのインスタンスを作成した後、starttls
メソッドを呼び出してTLSを開始し、login
メソッドを使用してSMTPサーバーにログインします。最後に、send_message
メソッドを使用してメールを送信します。
以上がPythonでHTMLメールを送信する基本的な方法です。この方法を使用すれば、Pythonスクリプトから直接HTMLメールを送信することが可能になります。