猫と遊ぶ 見習いプログラマーの備忘録

日々の学んだ事を随時更新。主にプログラム。その他いろいろ

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」ってなに?と気づいた方はいいですねえ~

続きは後編:実行ファイルで!!