【Python】もっとも基本的なメール送信の方法

Python

Pythonをつかったメール送信のプログラムをご紹介します。
非常にシンプルな内容となっていますので、利用を検討されている場合は以下のサンプルコードをご覧の上、一度お試しください。

スポンサーリンク

使用するライブラリ

smtplib

smtplibとは、メール送信に関する機能を備えたPythonの標準ライブラリのひとつです。

なお、SMTPとは「Simple Mail Transfer Protocol」の略称で、メール送信のプロトコル(コンピューター同士の通信の約束事)を定めたものです。

MIMEMultipart

MIMEMultipartとは、メール送信に関するPythonの標準ライブラリのひとつです。

MIMEとは、「Multipurpose Internet Mail Extensions」の略で、電子メールの規格を拡張して、取り扱いできる形式を増やしたものです。もとの規格では、「半角英字(US-ASCII)」、「1行あたり1,000文字」という制限があるようです。

Multipartとは 、メールを送信するうえで「テキスト形式」と「HTML形式」の両情報をもち、受信者が利用しているメールソフトに合わせていずれかを表示させる機能です。

MIMEText

MIMEText とは、 メール送信に関するPythonの標準ライブラリのひとつです。

MIMEは上述のとおりですが、こちらはテキスト(メール本文)を入力する際に使用します。

サンプルコード|メール送信

インポート

今回、必要なライブラリをインポートします。

import smtplib
from email.mime.multipart import  MIMEMultipart
from email.mime.text import MIMEText

SMTPサーバーに接続

SMTPサーバーに接続をします。

smtp_server = "smtp.gmail.com"
port = 587

server = smtplib.SMTP(smtp_server, port)

今回は「Gmail」にてテストをしますが、その他にもさまざな種類があります。
以下、よく使われると思われるものを掲載します。

種類SMTPサーバーポート番号
Gmailsmtp.gmail.com587
Outlook.comsmtp-mail.outlook.com587
Yahoo!メールsmtp.mail.yahoo.co.jp465

TLS暗号化の設定

TLSとは「Transport Layer Security」の略称で、インターネット上での通信データを暗号化するための通信方法です。セキュリティ上、データの通信内容を悪意のある第三者に漏洩させないようにする目的があります。

server.starttls()

SMTPサーバーにログイン

SMTPサーバーにログインをします。

login_address = "送信元のメールアドレスを入力"
login_password = "パスワードを入力"

server.login(login_address, login_password)

なお、「Gmail」でのパスワードの設定方法はこちらです。

1.「Google アカウント」にアクセス

2.「Google アカウントに移動」をクリック

3.「アプリ パスワード」をクリック

4.ログインする

5.「アプリを選択」から該当するものを選択

6.「デバイスを選択」から該当するものを選択して「生成」をクリック

7.生成されたアプリ パスワードを確認

メールの作成

MIMEMultipartをつかって、メッセージを作成します。

message = MIMEMultipart()

message["Subject"] = "メールの件名"
message["From"] = "メールの送信元"
message["To"] = "メールの送信先"

また、MIMETextをつかって本文を作成します。
MIMEMultipart に作成した本文を追加します。

text = MIMEText("本文を入力")
message.attach(text)

メールの送信

メールを送信します。

server.send_message(message)

SMTPサーバーの切断

SMTPサーバーを切断します。

server.quit()

コードの確認方法

このようなメール送信のプログラムの動作を確認するために、「使い捨て」のメールアドレスを使用されることをオススメします。

使い捨てのメールアドレスが利用できるオススメのサービスはこちらです。
いずれも登録不要で無料で利用することができます。

サービス概要有効
期限
捨てメアド登録不要の多機能フリーメールサービス無制限
ワンタイムメール無料で1週間使えるメールアドレスを即発行7日間
クイックメール登録不要で即時発行15分間

ぜひご自身にあった方法でテスト実施ください。

まとめ

シンプルな例をつかってPythonでのメール送信の方法をご紹介いたしました。

このようなメール送信のプログラムの動作を確認するために、ご紹介した「使い捨て」のメールアドレスなどをもちいて事前にテストをされることをオススメします。

ご紹介した一連のコードはこちらです。

import smtplib
from email.mime.multipart import  MIMEMultipart
from email.mime.text import MIMEText

smtp_server = "smtp.gmail.com"
port = 587
server = smtplib.SMTP(smtp_server, port)

server.starttls()

login_address = "送信元のメールアドレスを入力"
login_password = "パスワードを入力"
server.login(login_address, login_password)

message = MIMEMultipart()
message["Subject"] = "メールの件名"
message["From"] = "メールの送信元"
message["To"] = "メールの送信先"

text = MIMEText("本文を入力")
message.attach(text)

server.send_message(message)

server.quit()

タイトルとURLをコピーしました