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サーバー | ポート番号 |
Gmail | smtp.gmail.com | 587 |
Outlook.com | smtp-mail.outlook.com | 587 |
Yahoo!メール | smtp.mail.yahoo.co.jp | 465 |
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()
コードの確認方法
このようなメール送信のプログラムの動作を確認するために、「使い捨て」のメールアドレスを使用されることをオススメします。
使い捨てのメールアドレスが利用できるオススメのサービスはこちらです。
いずれも登録不要で無料で利用することができます。
ぜひご自身にあった方法でテスト実施ください。
まとめ
シンプルな例をつかって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()