【Python】会費リマインダーメールを送信する
機能
会費リマインダーメールを送信するPythonプログラムです。
会費管理用のExcelから未払いの会員を抽出し、リマインダーメールを送信します。
※メールアドレスはダミーです。
- リマインダーメール
サンプル動画
プログラム
#! python3 # 機能 # 会費リマインダーメールを送信する # 使い方 # 1.Pythonを実行する # 実行コマンド # python dues_reminder.py import os import sys import openpyxl sys.path.append(os.path.abspath("..")) from gmail_sender import gmail_sender # 未払いの会員を取得する def get_unpaid_members(): # Excel読み込み path = os.path.join(os.path.dirname(__file__), "会費管理.xlsx") wb = openpyxl.load_workbook(path) sheet = wb.worksheets[0] # 最新月の取得 last_col = sheet.max_column last_month = sheet.cell(row=1, column=last_col).value # 未払いの会員を抽出 unpaid_members = [] for row in range(2, sheet.max_row + 1): payment = sheet.cell(row=row, column=last_col).value if payment != "〇": name = sheet.cell(row=row, column=1).value email = sheet.cell(row=row, column=2).value unpaid_members.append( {"name": name, "email": email, "last_month": last_month} ) return unpaid_members # 未払いの会員にメールを送信する unpaid_members = get_unpaid_members() for member in unpaid_members: subject = "会費のご入金のお願い" body = """ {} 様 {}以前の会費のご入金が完了しておりません。 お早めにお支払いください。 """.format( member["name"], member["last_month"] ) print("{}にメールを送信中...".format(member["name"])) gmail_sender.send(member["email"], subject, body)
メール送信には以下で作成したモジュールを使用しています。
注意点として、Pythonは実行ファイルがあるフォルダ配下にしかパスが通らないようです。
私の環境ではプログラムごとにフォルダを分けているため、dues_reminder.pyを実行する際にgmail_sender.pyが参照できません。
..\Python\mail\dues_reminder\dues_reminder.py ..\Python\mail\gmail_sender\gmail_sender.py
この問題を回避するため、sys.pathにmailフォルダ(..)を追加して、gmail_senderフォルダ配下も参照できるようにしています。
sys.path.append(os.path.abspath("..")) from gmail_sender import gmail_sender
使い方
- Pythonを実行する
実行コマンド
python dues_reminder.py
openpyxlをインストールしていない場合は以下のコマンドでインストールして下さい。
pip install openpyxl