===============================================================================
  smtp4devlite  Version 1.0.3
===============================================================================

【はじめに】

smtp4devlite は、開発中のアプリケーションなどから送信されたメールを
ローカルで受信し、実際の宛先へ配信せずに内容を確認するための軽量な
SMTPテストサーバーです。

クラシックな .NET Framework 版 smtp4dev の操作感を参考に、
.NET 10 / Windows Forms で再構成しています。


【主な機能】

・SMTPメールの受信
  HELO/EHLO、AUTH、MAIL FROM、RCPT TO、DATA、SMTPUTF8などに対応します。
・POP3で受信メールを取得・削除（既定OFF）
  USER/PASS、UIDL、TOP、STLSおよび暗黙的SSL/TLSに対応します。
・IMAP4で共有INBOXを閲覧・既読管理・削除（既定OFF）
  LOGIN／AUTHENTICATE PLAIN、STARTTLSおよび暗黙的SSL/TLSに対応します。
・受信メッセージとSMTPセッションの一覧表示
・メール、IMAP状態、SMTPセッションをSQLiteへ永続保存
・メール本文（テキスト／HTML）、ヘッダー、RAWデータ、添付ファイルの確認
・TEXT／HTMLの両本文がある場合のタブ切り替え、CID埋め込み画像の表示
・MIMEパーツの構造ツリー、個別の情報・ヘッダー・内容の確認と保存
・HTMLメールのメールクライアント互換性検査とHTML文法検査
・受信メールの .eml ファイル保存
・SMTPセッションログの表示
・SMTPエラー応答、遅延、接続切断のシミュレーション（既定OFF）
・通知領域への最小化とWindowsの新着通知
・待受アドレス、ポート、保持件数、自動表示などの設定
・STARTTLSおよび暗黙的SSL/TLS
・証明書未指定時の自己署名証明書の自動生成
・SMTP AUTH（CRAM-MD5／PLAIN／LOGIN／ANONYMOUS）
・OAuth 2.0（XOAUTH2／OAUTHBEARER）
・SMTPUTF8によるUnicodeメールアドレスとUTF-8ヘッダー（既定ON）
・ライト／ダークモード（初期設定はOSのアプリ用テーマに合わせる）
・日本語／英語UI（初期設定はOSの表示言語に合わせ、日本語以外は英語）
・表示テーマと言語の選択・保存（変更は再起動後に適用）
・情報タブで過去のリリースノートを新しい順に表示


【動作環境】

OS        : Windows 10 バージョン1809以降、Windows 11
対応環境  : 64ビット（x64）

本ソフトは自己完結型で配布されるため、通常は .NET ランタイムを別途
インストールする必要はありません。
HTML表示には Microsoft Edge WebView2 Runtime が必要です。未導入の場合は、
同梱のEvergreen Bootstrapperからインストールできます。Bootstrapperによる
インストールにはインターネット接続が必要です。


【取り扱い種別】

本ソフトウェアはフリーソフトです。無料で利用できます。
使用にあたって送金やライセンス料の支払いは必要ありません。


【インストール】

1. smtp4devlite-1.0.3-win-x64-setup.exe を実行します。
2. 画面の案内に従ってインストールします。
3. スタートメニューの SMTP4DevLite から起動します。

ZIP形式でダウンロードした場合は、先にZIPを展開してください。
ZIPにはインストーラーとこのREADME.txtが含まれます。

現在のユーザー向けにインストールします。既定のインストール先は
%LOCALAPPDATA%\Programs\SMTP4DevLite です。通常、管理者権限は不要です。
日本語OSでは日本語、それ以外では英語のインストーラーになります。
更新時は通知領域のアイコンからもアプリを終了してから実行してください。
WebView2 Runtimeはインストーラーで自動導入しません。必要に応じて
アプリ内の案内から同梱Bootstrapperを実行してください。

以前のZIP配布版も、展開した smtp4devlite.exe から引き続き起動できます。


【使い方】

初回起動時はOSのテーマと表示言語に合わせます。
日本語OSでは日本語、それ以外のOSでは英語UIになります。
「設定」→「ユーザーインターフェイス」で、表示テーマを
「OSの設定に合わせる／ライト／ダーク」、表示言語を
「OSの設定に合わせる／日本語／English」から選べます。
変更は保存後、アプリを終了して再起動すると適用されます。
HTMLメール本文は、表示確認のためメール本来の配色を維持します。

1. SMTPサーバーを準備する

   smtp4devlite.exe を起動すると、既定では 0.0.0.0 のポート25で待受を
   開始します。画面下部に「SMTP: 25 で待受中」と表示されれば準備完了です。

   ポート25を使用できない場合や、ローカルPCからだけ接続したい場合は、
   画面下部の「設定」を開き、「SMTP設定」タブで次のように変更して
   「保存」を押してください。

     待受インターフェイス : 127.0.0.1
     ポート番号             : 2525

   待受が停止しているときは「待受を開始」を押します。

2. メールを送る側を設定する

   テスト対象のアプリケーションやメールソフトのSMTP設定を、
   smtp4devlite の待受設定に合わせます。ローカルPC内から接続する場合の
   一般的な設定例は次のとおりです。

     SMTPサーバー : 127.0.0.1 または localhost
     ポート       : 2525（smtp4devlite側で設定した番号）
     暗号化       : なし
     認証         : なし、または任意のユーザー名とパスワード

   宛先メールアドレスにはテスト用の任意のアドレスを指定できます。
   smtp4devlite が受信したメールをインターネット上へ転送することはありません。

3. 受信したメールを確認する

   メールを受信すると「メッセージ」タブの一覧に追加されます。
   対象のメールを選択して、次の操作を行えます。

     表示...本文を表示します。
            HTMLメールはHTMLタブで表示し、TEXTパートがあれば切り替えられます。
            外部画像・スクリプトは読み込まず、メール内の埋め込み画像を表示します。
            隣の「MIMEパーツ」タブで本文・画像・添付ファイルの構造を確認できます。
            パーツを選ぶと情報・ヘッダー・内容を表示し、個別に保存できます。
            「HTML検査」タブではHTML/CSSのメールソフト対応状況と文法を確認できます。
            互換性の結果は既知の対応情報による目安であり、実機表示の保証ではありません。
     詳細...本文、ヘッダー、RAWデータ、添付ファイルなどを確認します。
     保存...受信メールを .eml ファイルとして保存します。
     削除...選択したメールを一覧から削除します。
     すべて削除...受信メールをすべて一覧から削除します。

   メールをダブルクリックしたときの動作は、「設定」の
   「ユーザーインターフェイス」タブで変更できます。

4. SMTP通信を確認する

   「セッション」タブには接続元、暗号化の有無、受信メール数が表示されます。
   セッションを選択して「ログを表示」を押すと、SMTPコマンドと応答を確認
   できます。送信に失敗した場合の原因調査に利用してください。

5. 別のPCや端末から接続する

   「待受インターフェイス」を 0.0.0.0 にし、送信側のSMTPサーバーに
   smtp4devliteを動かしているPCのIPアドレスを指定します。必要に応じて
   Windowsファイアウォールで設定したポートへの受信を許可してください。

   0.0.0.0 はすべてのIPv4ネットワークインターフェイスで待ち受けます。
   信頼できないネットワークでは、127.0.0.1を使用するか、ファイアウォール、
   SMTP認証、SSL/TLSを適切に設定してください。


【POP3でメールを取得する】

「設定」→「POP設定」で「POP3サーバーを有効にする」をONにして保存します。
既定ではOFFです。有効化時の初期接続先は127.0.0.1、ポート110、暗号化なし、
認証方式はUSER/PASSです。任意のユーザー名・パスワードを受け入れますが、
そのチェックを外すと指定した認証情報を照合できます。

SMTPで受信した全メールを共有します。ユーザー別・宛先別の振り分けはありません。
同時にログインできるPOPクライアントは1つです。接続中に届いた新着メールは
次のログインから取得できます。POPで削除するとアプリの一覧からも削除されます。
削除はQUIT時に確定し、RSETまたは途中切断では取り消されます。
メールを残す場合は、メールソフトの「サーバーにメッセージを残す」を有効にします。
メールはSQLiteへ保存されるため、アプリを再起動しても保持されます。

STLSまたは暗黙的SSL/TLSを使用できます。証明書は「SMTP設定」と共用します。
暗黙的SSL/TLSを選ぶ場合は、ポートを995などに変更しメールソフトと合わせます。
画面下部の1行にSMTP、POP、IMAPの状態を表示します。右側の共通ボタンですべての
待受をまとめて開始・停止できます。POP設定がOFFの場合はSMTPだけが起動します。
設定保存時に待受が停止中の場合は「待受を開始」を押してください。
APOP・SASL認証とPOPセッションログには対応していません。


【IMAPでメールを閲覧する】

「設定」→「IMAP設定」で「IMAP4サーバーを有効にする」をONにして保存します。
既定ではOFFです。有効化時の初期接続先は127.0.0.1、ポート143、暗号化なしです。
初期設定では任意のユーザー名・パスワードを受け入れます。チェックを外すと、
指定した認証情報を照合します。パスワードはSHA-256ハッシュで保存します。

SMTPで受信した全メールを1つのINBOXとして公開します。LOGIN／AUTHENTICATE PLAIN、
LIST／LSUB、STATUS、SELECT／EXAMINE、APPEND、FETCH、STORE、SEARCH、UID、
EXPUNGEなどに対応します。APPENDで追加したメールはアプリの一覧にも表示され、
初期フラグとINTERNALDATEを反映します。SMTP設定の最大メッセージサイズも適用
されます。EXPUNGEまたはCLOSEで削除したメールはアプリの一覧からも削除されます。

STARTTLSまたは暗黙的SSL/TLSを使用でき、証明書は「SMTP設定」と共用します。
暗黙的SSL/TLSを選ぶ場合は、ポートを993などに変更しメールソフトと合わせます。
単一INBOXの簡易実装です。フォルダー作成、COPY、MOVE、IDLE、IMAPの
セッションログには対応していません。メール、UID、フラグはSQLiteへ保存され、
アプリを再起動しても保持されます。


【SSL/TLSと認証】

STARTTLSまたは暗黙的SSL/TLSを有効にできます。証明書を指定しない場合は、
自己署名証明書が自動生成されます。「設定」画面から公開証明書の保存や、
コンピューター全体の「信頼されたルート証明機関」への登録も行えます。
信頼登録時には管理者権限の確認（UAC）が表示され、すべてのユーザーに影響します。

AUTHを有効にした場合、既定では任意の認証情報を受け入れます。
OAuth 2.0では、任意のトークンを受け入れる方法と、指定したユーザー名および
アクセストークンを照合する方法を選択できます。アクセストークン照合時は、
トークンそのものではなくSHA-256ハッシュのみが設定ファイルへ保存されます。

認証情報やBearerトークンを使用するテストでは、SSL/TLSも有効にしてください。


【SMTPエラーシミュレーション】

「設定」→「SMTP設定」で「SMTPエラーシミュレーションを有効にする」をONに
すると、送信側アプリケーションのエラー処理や再送処理を試験できます。
既定ではOFFです。

発生箇所は、接続直後、EHLO／HELO、AUTH、MAIL FROM、RCPT TO、DATA開始時、
本文受信後から選択できます。400～599のSMTP応答コードとメッセージ、応答遅延、
応答せず接続を切断する動作を設定できます。発生方式は毎回、最初の1回、指定確率
から選べます。差出人、宛先、件名に含まれる文字で対象を絞り込むこともできます。
件名条件は「本文受信後」を選択した場合のみ使用できます。

本文受信後にエラーを返したメールは受信一覧へ保存されません。
シミュレーションの発生箇所と結果はSMTPセッションログに記録されます。


【SMTPUTF8】

「設定」→「SMTP設定」の「SMTPUTF8」は既定でONです。有効な場合はEHLO応答で
SMTPUTF8を通知し、「MAIL FROM:<送信元> SMTPUTF8」を受け付けます。
SMTPUTF8を指定したメールでは、日本語などを含む送信元・宛先メールアドレスと
UTF-8ヘッダーを使用できます。

UnicodeアドレスやUTF-8ヘッダーを使用するメールでSMTPUTF8が指定されていない
場合は、SMTP規約に従って553または550エラーで拒否します。


【設定とデータについて】

設定ファイルは、次のフォルダーへ保存されます。

  %LOCALAPPDATA%\smtp4devlite\settings.json

SSL/TLSで自動生成された証明書も同じアプリケーションデータ領域に保存されます。
受信メール、IMAPのUID・フラグ、SMTPセッションと通信ログは、次のSQLite
データベースへ保存され、アプリケーションの起動時に復元されます。

  C:\ProgramData\mmomoyama\SMTP4DevLite\smtp4devlite.db

メールには従来どおり「保持するメールの最大件数」が適用されます。上限を超えた
古いメールはメモリとSQLiteの両方から削除されます。画面、POP、IMAPから削除した
場合もSQLiteへ反映されます。SMTPセッションには従来どおり件数制限はありません。


【アンインストール】

1. smtp4devlite を終了します。
2. Windowsの「設定」→「アプリ」から SMTP4DevLite をアンインストールします。
   インストール先の Uninstall.exe からも削除できます。
   以前のZIP版の場合は展開したフォルダーとファイルを削除します。
3. 設定も削除する場合は、次のフォルダーを削除します。

     %LOCALAPPDATA%\smtp4devlite

4. 保存したメールとセッションも削除する場合は、次のフォルダーを削除します。

     C:\ProgramData\mmomoyama\SMTP4DevLite

インストーラー版では、削除する実行ファイルを指している自動起動登録も削除します。
メール・設定・証明書は残します。ZIP版で「ログイン後に自動的に起動する」を
有効にしていた場合は、削除前にその設定を無効にしてください。

本ソフトから証明書をOSへ信頼登録した場合、その証明書はアンインストールでは
自動削除されません。不要であれば管理者権限で「ローカル コンピューター」の
証明書管理画面を開き、「信頼されたルート証明機関」から削除してください。


【使用上の注意】

・本ソフトは開発およびテスト用途の簡易SMTPサーバーです。実運用のメール
  サーバーとして使用しないでください。
・既定の待受アドレス 0.0.0.0 は、他のPCから接続できる場合があります。
  外部接続が不要な場合は 127.0.0.1 に変更してください。
・ポート25は他のソフトウェアに使用されている場合や、権限の都合で待受を
  開始できない場合があります。その際は2525などの空いているポートを指定
  してください。
・メール本文や添付ファイルには機密情報が含まれる場合があります。保存した
  .emlファイルや画面表示の取り扱いに注意してください。


【免責事項】

本ソフトウェアの利用によって生じたいかなる損害についても、作者は一切の責任を
負いません。利用者自身の責任において使用してください。


【著作権・配布について】

本ソフトウェアの著作権は作者に帰属します。
配布、転載、改変その他の利用条件については、作者へお問い合わせください。


【更新履歴】

2026/10/03  Version 1.0.3
  ・インストーラー配布に対応
  ・一部のWindows環境でアプリが起動しない問題を修正
  ・ダークモードに対応し、初回起動時はOSのアプリ用テーマを参照
  ・日本語／英語UIに対応し、日本語OS以外は英語を初期表示
  ・表示テーマと表示言語を設定から変更・保存できるように対応
  ・情報タブで過去のリリースノートを新しい順に表示し、日本語・英語で確認できるように対応

2026/09/26  Version 1.0.2
  ・IMAP4サーバーを追加（既定OFF、共有INBOX、LOGIN／PLAIN、STARTTLS、暗黙的SSL/TLS）
  ・IMAPのAPPENDによるメールソフトから共有INBOXへのメール追加に対応
  ・受信メール、既読状態、SMTP通信ログを保存し、アプリの再起動後も確認できるように対応
  ・SMTP／POP／IMAPの待受状態表示と開始／停止ボタンを統合
  ・条件、発生方式、遅延、切断を指定できるSMTPエラーシミュレーションを追加
  ・SMTPUTF8によるUnicodeメールアドレスとUTF-8ヘッダーに対応

2026/09/22  Version 1.0.1
  ・POP3サーバーを追加（既定OFF、USER/PASS、UIDL、TOP、STLS、暗黙的SSL/TLS）
  ・SMTP／POPの待受状態表示と開始／停止ボタンを統合
  ・HTMLメール表示とTEXT／HTML本文のタブ切り替えに対応
  ・CID埋め込み画像の表示に対応
  ・MIMEパーツの構造、情報、ヘッダー、内容の確認と個別保存に対応
  ・HTMLメールのメールクライアント互換性検査とHTML文法検査を追加
  ・WebView2未導入時に同梱Bootstrapperから導入できる機能を追加
  ・証明書の信頼登録先をコンピューター全体の証明書ストアへ変更
  ・HTML検査の案内欄を2行表示とスクロールに対応
  ・メッセージ／セッション一覧の時刻列幅を調整

2026/08/30  Version 1.0.0
  ・初回公開版


【作者・連絡先】

作者      : 桃山 学
メール    : info@mmomoyama.org
ウェブサイト: https://mmomoyama.org/SMTP4DevLite/


以上
