Pythonでメールを送るの巻 前編:処理ファイル
今回は、Pythonでメール機能を書いてみたいと思う。
まずメール機能に触れる前に、Python初学者の私は、ファイルについてよく知っていなかった。
ファイルはファイルじゃんw、ってツッコまれそうなので、も少し詳しく説明すると、
今まではプログラムを書く時に、処理と実行するコードを一つのファイルに書いていた。
プログラムによっては今も一つのファイルに書いているが、今回メール機能を書くときは関数化にしてみた。
そして、プログラムを関数化するにあたり、メール機能を、処理と実行の二つのファイルに分けた。
処理を関数化にすると何がいいのじゃというと、コードが短くなる、かつ見やすい。そしてデバッグもしやすい。
メリットばかりで、これから関数とは密に付き合っていくであろうということで、関数化にトライしてみた。
……
それが今回のメール機能へとはなしが繋がっていく。
(前置き長かったかしら笑)
さて、Pythonにまだ慣れていない身にとってメール機能はちょいとハードルが高かったのだが、
結論から言うと一応メールは送れるようになったので、ハードル高かった分、他でも応用できそうだ…!✊yesッ
メールを送れたときの感動は…そりゃ嬉しかった(笑)
yahoo!!(こういう時に使うんだな💡)
今回はメールの処理ファイルについてなので、さっそく処理のコードを見ていこう。
# モジュールの読み込み import smtplib from email.mime.text import MIMEText from email.header import Header from email.utils import formatdate # 日本語 e = 'iso-2022-jp' # 自作関数mailTo(なんでもよい。が、何をしている処理なのかわかりやすくする) def mailTo(toaddr, number): # 変数を空にしておく value ='' # 本文 # 複数行書きたい場合は、変数を空にしておいてそこに追加していく感じ↓ value += '書きたい文を、' value += '追加!' # 例えば value += '※このメールは送信専用です。返信はできませんのでご注意ください。\n\n' # 一つにまとめたいときは value = 'ここに文を書けばOK' # 'plain'はお決まりらしい。eで日本語化。 msg = MIMEText(value,'plain',e) # 送り元 msg['From'] = """mail@○○""" # 送信先 msg['To']= t_address # 日付 msg['Date'] = formatdate() # 件名 msg['Subject'] = """メールだよ""" # サーバの設定 srv_smtp = '000.00.0.0' # SMTPサーバ srv_port = ○○ # ポート番号 # SMTPサーバへの接続 server = smtplib.SMTP(srv_smtp,srv_port) server.send_message(msg) server.quit()
もっといい書き方があると思うが、これでも処理はOKだった👌
ここでいう本文valueの中身、件名等を変えれば使いまわしが可能になる。
「MIMEText」という単語が気になるところだが、これはメールを送る時に必要な関数である。
メール機能にはこれが必要、くらいに思っておけばOKだと思う。
(私も深い意味は知らない、ごめんなさい笑)
「t_address」ってなに?と気づいた方はいいですねえ~
続きは後編:実行ファイルで!!