メール送信に特化したアプリを作りました。IT講師業で、メールに関する実習で毎回GMailから送信するのが面倒で、作りましたwよろしければ、どうぞ。
MailSender アプリケーション概要
MailSender は、Windows 向けのデスクトップメール送信ツールです。Gmail の SMTP を利用し、アプリパスワードまたは OAuth 2.0 認証で安全にメールを送信できます(動作確認はGMail アプリパスワードでのみ実施)。
動作環境
- Windows 10 以降 / 64bit
- 同梱の
MailSender.exe(PyInstaller onefile ビルド) - インターネット接続
主な機能
- SMTP メール送信
- Gmail を含む一般的な SMTP サーバに対応
- サーバ/ポート/暗号化方式(TLS/SSL)の設定
- 認証方式の切り替え
- アプリパスワード(Gmail の場合は 2 段階認証+16 文字パスワード、その他の SMTP サーバの場合は通常のパスワード)
- OAuth 2.0(クライアント ID/シークレット)
- 送信先管理
- リストへの追加・削除、ドラッグ&ドロップでの添付ファイル登録
- 任意の宛先を To/CC/BCC として送信リストに振り分け
- 送信リストの内容をまとめて削除するボタンを配置
- 添付ファイル管理
- ドラッグ&ドロップまたは追加ボタンでファイルを登録
- 添付ファイルの起動(デフォルトアプリで開く)
- 添付ファイルパスの編集
- 相対パス対応(カレントディレクトリを起点とした
./形式)
- メール作成
- 署名、本文、エンコーディング設定(utf-8 / shift_jis / euc-jp / iso-2022-jp)
- 日本語ファイル名の添付ファイルに対応
- 設定管理
- 設定・送信先の自動保存/読込(JSON / TXT)
- 設定ファイルの手動保存/読込(タイムスタンプ付きファイル名をデフォルトで提案)
- 相対パスで保存された添付ファイルパスを自動解決
- 自動送信機能
- トリガー送信:
triggerフォルダ内の JSON ファイルを監視し、自動送信(2 秒間隔) - 時間送信: 指定した日時・周期で自動送信(一度のみ/毎日/毎週/毎月)
- トリガー送信:
- 操作
- ショートカット
Ctrl+Tで送信 - 送信成功・失敗はステータスバーと通知音で確認
- ショートカット
画面構成と操作
-
送信用設定(画面左)
- 氏名/メールアドレス/ユーザ名/パスワード(アプリパスワード)を入力
- 認証方式を切り替えると、必要な入力欄が自動表示
- 添付ファイルをドラッグ&ドロップ、または「追加」ボタンで登録
- 添付ファイルの「起動」ボタンでファイルを開く、「編集」ボタンでパスを編集
-
送信先設定(画面右)
- 送信先リストにアドレスを追加/削除
- 選択したアドレスを
To、CC、BCCボタンで送信リストに振り分け - 送信リストに割り当てられた宛先が To/CC/BCC ごとに表示され、まとめて削除可能
- 件名と本文を入力し、必要に応じてエンコーディングを変更
-
送信
メール > 送信またはCtrl+Tで送信- 成功・失敗はステータスバーと通知音で確認
-
自動処理機能(スクリプトメニュー)
- トリガー: チェックを ON にすると、カレントディレクトリの
triggerフォルダを 2 秒ごとに監視。JSON ファイル(mail_sender_settings.json形式)が存在すると自動送信し、送信後にファイルを削除- 設定ファイルを用途毎に作成しておき、送信したいタイミングでJSONファイルをtriggerフォルダにコピーすることで、メール送信を実行可能
- 時間送信: 指定した日時・周期で自動送信するスケジュールを設定。複数のスケジュールを登録可能
- 設定ファイルを用途毎にtimerフォルダ内に作成しておき、指定した周期でメール送信することが可能
- トリガー: チェックを ON にすると、カレントディレクトリの
詳細な OAuth 2.0 設定手順は OAUTH_SETUP.md を参照してください。
保存ファイル
mail_sender_settings.json: 送信設定(送信リスト、添付ファイルパス含む)recipients.txt: 送信先リスト(タブ/改行区切り)timer_schedules.json: 時間送信スケジュール設定trigger/: トリガー送信用フォルダ(JSON ファイルを配置すると自動送信)timer/: 時間送信用フォルダ(スケジュールで参照する JSON ファイルを配置)resources/tkinterdnd2: tkinterdnd2 ライブラリ(LGPLv3)。DLL を差し替えることでアップデート可能です。
添付ファイルパスの保存形式
- カレントディレクトリ内のファイル: 相対パス(
./で始まる)で保存 - カレントディレクトリ外のファイル: 絶対パスで保存
- 読み込み時: 相対パスは自動的に絶対パスに変換されます
配布・実行方法
- 初回起動時に送信設定を入力し、必要に応じて「ファイル > 設定を保存」から JSON/TXT を任意の場所に保存できます。
- 設定を読み込む場合は「ファイル > 設定を読み込み」から保存した JSON/TXT を選択します。exe で実行した場合は exe と同じフォルダがデフォルトで開きます。
resources/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dllを差し替えることで、LGPL の要件を満たした上で tkdnd を更新できます。
ライセンス
使用しているライブラリおよびライセンス情報は LICENSE.md を参照してください。特に tkinterdnd2 の DLL を差し替える場合は、同フォルダに配置されているファイルを置き換えてください。