Python 3でメール添付ファイルを送信する方法

PYTHON3 チュートリアル

Python 3でメールに添付ファイルを送信する方法は、さまざまなプロジェクトで非常に役立ちます。この記事では、Pythonの標準ライブラリを使って、メールに添付ファイルを追加し、送信する方法について詳しく説明します。以下のサンプルコードを通じて、実際の実装方法を学びましょう。

Python 3でメールを送信するための準備

まず、Pythonでメールを送信するために必要なライブラリを確認しましょう。Pythonには、メールを作成するためのemailモジュールと、メールを送信するためのsmtplibモジュールが用意されています。

必要なライブラリのインポート

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

基本的なメール送信のセットアップ

次に、基本的なメール送信のセットアップを行います。ここでは、SMTPサーバーの設定と、メールの送信元、送信先、件名を指定します。

SMTPサーバーの設定

smtp_server = "smtp.example.com"
smtp_port = 587
username = "[email protected]"
password = "your_password"

メールの基本情報を設定

from_addr = "[email protected]"
to_addr = "[email protected]"
subject = "Pythonでメール送信"
body = "このメールには添付ファイルがあります。"

メールに添付ファイルを追加する方法

メールに添付ファイルを追加するには、MIMEBaseオブジェクトを使用します。以下の例では、テキストファイルを添付する方法を示します。

添付ファイルの追加

# メールのメッセージオブジェクトを作成
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject

# 本文を追加
msg.attach(MIMEText(body, 'plain'))

# 添付ファイルを開く
filename = "example.txt"
attachment = open(filename, "rb")

# MIMEBaseオブジェクトを作成して添付ファイルを設定
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename={filename}')

# メッセージに添付ファイルを追加
msg.attach(part)

メールの送信

準備が整ったら、smtplibを使用してメールを送信します。SMTPサーバーに接続し、メールを送信する手順を以下に示します。

メールの送信手順

# SMTPサーバーに接続
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()

# ログイン
server.login(username, password)

# メールを送信
server.sendmail(from_addr, to_addr, msg.as_string())

# サーバーを終了
server.quit()

まとめ

この記事では、Python 3を使用してメールに添付ファイルを追加し、送信する方法を学びました。必要なライブラリのインポートから、SMTPサーバーの設定、添付ファイルの追加、そしてメールの送信までの手順を解説しました。これらの方法を活用して、さまざまなプロジェクトでメール送信機能を実装してみてください。

Python 3を使用してメールに添付ファイルを送信する方法は、標準ライブラリのsmtplibとemailモジュールを使用することで実現できます。まず、必要なモジュールをインポートします。

“`python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
“`

次に、SMTPサーバーに接続し、メールを送信するための基本的な情報を設定します。

“`python
# SMTPサーバーに接続
server = smtplib.SMTP(‘smtp.example.com’, 587)
server.starttls()
server.login(“[email protected]”, “your_password”)

# メールの基本情報を設定
msg = MIMEMultipart()
msg[‘From’] = “[email protected]
msg[‘To’] = “[email protected]
msg[‘Subject’] = “メールの件名”
“`

添付ファイルをメールに追加するために、ファイルをバイト列として読み込み、MIMEBaseオブジェクトとして添付ファイルを作成します。

“`python
# 添付ファイルを追加
filename = “file.txt”
attachment = open(“file.txt”, “rb”)
part = MIMEBase(‘application’, ‘octet-stream’)
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header(‘Content-Disposition’, “attachment; filename= %s” % filename)
msg.attach(part)
“`

最後に、作成したメールをSMTPサーバーを介して送信します。

“`python
# メールを送信
server.send_message(msg)
server.quit()
“`

以上で、Python 3を使用してメールに添付ファイルを送信する方法が完了します。

購読
通知
0 Comments
Inline Feedbacks
View all comments