■ 導入:きっかけは「現場の困った」から
こんにちは、ニンジンです。 普段は電子機器制御のためにPythonを触っていますが、ふと思ったんです。 「Pythonで便利なソフトを作って、ワンコイン(500円)で販売してみたら売れるかな?」
そうはいっても、何を作れば喜ばれるのか。 そんな時、営業部の人から**「展示会後のお礼メールを一人ずつ出すのがとにかく大変なんだ……」という悩みを聞きました。 「それ、Pythonなら一瞬で自動化できるんじゃない?」 これが、メール一括送信ソフト「NINJIN Mail」**開発の始まりでした。
■ 構想設計:シンプルかつ直感的に
まずは「誰に向けて、何をしたいか」を整理します。
ソフトウェアは複雑にせず、誰でも直感で操作できることを目指しました。
- ターゲット: 展示会のお礼メールや招待メールを送る営業マン。
- 名簿読み込み: 扱いやすいExcelファイルから氏名、アドレス、会社名を吸い出す。
- 一括送信:Excelから吸い出した情報を差し込みながら本文を送信する
- ログ記録: 誰に送ったのか記録も残ればベスト。
- 活用シーン: 展示会のお礼メール、セミナーの招待メールなど。
深掘りした構想設計
何をするか構想がでたら具体的にどうするかを深堀りしてみます。
- 名簿は任意のフォルダにあるExcelファイルを吸い出して取得しよう。
- GUIアプリケーションから「件名」と「本文」を入力する。
- 送信はOutlookのAPIを使ってOutlookを操作して送信しよう。
- 配信結果(ログ)は名簿に使ったExcel内に追記して履歴をとろう。
- 使い勝手をよくするため、Excelファイル場所を記憶させる。
開発準備:必要なライブラリ
構想設計した事を実現するために必要なライブラリを検討します。
| 役割 | ライブラリ名 |
| Excelの読み書き | pandas, openpyxl |
| GUI(操作画面)の作成 | tkinter |
| Outlookの操作 | pywin32 |
| 設定ファイルの運用 | json |
| 送信日時の記録 | time |
豆知識:pywin32は64bit版のWindowsやPythonでも問題なく動作します。ライブラリ側で自動調整してくれるので、ユーザーは気にせず使って大丈夫ですよ!
ライブラリのインストール
作業するPCに、ライブラリがインストールされていない場合は以下のコマンドを実行して、事前にインストールしておきましょう。

※コマンドプロンプトかWindows PowerShellにて実行
pip install pandas
※インストール中にNumpyのWARNINGが出ることがありますが、「Successfully installed」と表示されていれば問題ありません。
※pip install pandas openpyxl pywin32 左記コマンドで一括インストールも可
■ ステップ①:pandasで顧客データを読み取る
まずは全ての基本となる、Excelデータの読み込みからスタートです。

- 名簿用のExcelファイル: ファイル名を「client_list.xlsx」とします。
- client_list.xlsxはPythonコード(mail-soft-test01.py)と同じフォルダ内に設置して下さい。
サンプルコード mail-soft-test01.py
※VSCodeなどのエディターにてサンプルコードを実行して下さい
import pandas as pd
def load_client_list(file_path):
try:
# Excelファイルを読み込む
df = pd.read_excel(file_path)
# 1行ずつ処理して読み込みを確認
for index, row in df.iterrows():
name = row['氏名']
email = row['アドレス']
company = row['会社名']
print(f"読み込み中: {company} {name} 様 ({email})")
except Exception as e:
print(f"エラーが発生しました: {e}")
# 実行(同じフォルダにExcelがある前提)
load_client_list('client_list.xlsx')
最初の実験結果と「気づき」
無事に読み取ることができましたが、実用化に向けた課題も見つかりました。
- ファイルパス: Pythonファイルと同じフォルダにExcelを置かないと動かない。
- ヘッダー名の重要性:
row['氏名']のように指定するため、Excelの1行目が一致していないとエラーになる。 - 空行の扱い: 名簿の途中に空行があるとエラーになるので、改良が必要。
■ 次回予告
第1回はここまで! Excelの中身を覗くことには成功しましたが、これではまだ「プログラム」です。
次回は、**「Windowsでおなじみのファイル選択画面」を作り、さらに「一度選んだ場所を記憶させる」**という、UX(ユーザー体験)を向上させる仕組みに挑戦します。
「たかが1クリック、されど1クリック」。 業務効率化ツールの愛着は、こういう細かい工夫から生まれると思っています!
実験販売ですが、期待もしつつ、まぁ売れないよなと思っていますw
応援購入お待ちしております。







コメント