「メーリングリスト+電子掲示板=リスト板」を実現する「りすと亭」をバージョンアップしました。
新しいバージョンは4.06.0となります。
以下より入手できます。
りすと亭のダウンロード
今回のバージョンアップでは、非常に多くの変更点があります。前リストは上記ページにありますが、分かりにくいと思うので、ここで解説します。
過去ログ再作成で、日付が不正なメールに対応するスレッドファイルが作成されない §
ちょっと理解に苦しむヘッダーを付けて送られて来たメールがあります。(実際に、りすと亭で稼働するメーリングリストに届いた実例)
Date: 土, 12 6 2004
まったくのRFC違反のフォーマットであり、さすがにこれを正しく解析することは不可能です。これに付随する問題がいろいろあって、このようなメールを受け取っても止まらないように、いろいろな修正を加えています。
CSSの色を改善 §
かねてから利用者から希望のあったコントラストの改善を行っています。
CSSのサイズ指定を相対サイズに §
Webブラウザで文字のサイズを変更できますが、その変更を反映させるためには、pxやptではなく、%やemでサイズを指定しなければなりません。問題はだいぶ前から認識していましたが対策が遅れました。すみません。
CSSにp.superstronglineを追加 §
各リスト板の表紙ページで、電子メールアドレスが行をはみ出して表示される問題への対策。
writer.Write("[FATAL ERROR: " + e);という形式が持つXSS脆弱性対策 §
通常は起こらない可能性が高いパターンですが、異常事態発生時に例外情報が適切にHTMLに変換されずに送り出されるケースがありました。
WriteLogParsers.ZeroOneParserのXSS脆弱性対策 §
一部の機能で、0か1か指定できるURLのパラメタにタグを埋め込むとエラーメッセージに思い通りのHTMLコードを埋め込むことができたことへの対策。
WriteLogParsers.IntParserのXSS脆弱性対策 §
一部の機能で、整数を指定できるURLのパラメタにタグを埋め込むとエラーメッセージに思い通りのHTMLコードを埋め込むことができたことへの対策。
簡易httpd機能が返す日付時刻のタイムゾーンを正しく直す §
数値はJSTなのに、GMTが付加されて返されていたことが分かり、数値もGMTになるように変更しました。
ユーザー向け各ページの上部メニューに、[(リスト板) メニューページ]へのリンクを追加 §
当然、これが無いとおかしいよね、という利用者からの意見により追加。
パスワード通知で違うメールアドレスから返信した時のエラー通知メールの戻り先がMLのアドレスになっているが管理者に戻すべき §
通知メールに返送することでリスト板に配送される事態を抑止します。
パスワード通知メールの戻り先がMLのアドレスになっているが管理者に戻すべき §
同上。
リスト板2重登録のエラー通知メールの戻り先がMLのアドレスになっているが管理者に戻すべき §
同上。
リスト板登録の通知メールから返信した時の戻り先がMLのアドレスになっているが管理者に戻すべき §
同上。
リスト板登録で違うメールアドレスから返信した時のエラー通知メールの戻り先がMLのアドレスになっているが管理者に戻すべき §
同上。
通知メールの文面に、これを返送すると管理者に行くことを明記 §
メーリングリストへの送信のつもりで通知メールに返信する利用者がいるため、注意喚起のために追加。
メッセージのカウント値を設定する機能を追加する §
過去メッセージ削除と組み合わせて、1からメッセージをやり直すことができます。
動作テストから本運用に入る時にメッセージ番号を1からやり直したいという利用者のリクエストから追加。マニュアルに操作手順の説明ページも追加。
管理者が管理ログの最後の過去メッセージを削除すると極端に処理に時間が掛かる問題を解消 §
プログラミング上のバグです。
LTUtil.TransferSafeInetMail.ToInetMailのSystem.ArgumentNullException対策 §
上記メソッドがSystem.ArgumentNullException例外を投げる場合がある事への対策です。不正なメールを受信すると発生する場合があるようです。
リスト板の設定にCSSスタイルシートURL指定を含める (管理レベル1) §
リスト板の設定にCSSスタイルシートURL指定を追加しました。指定しなければサーバ設定のデフォルトCSSスタイルシートURLが使われます。
サーバ設定にデフォルトCSSスタイルシートURL指定を含める §
サーバ設定にデフォルトCSSスタイルシートURL指定を追加しました。リスト板に属さない他の全てのページに適用されるCSSスタイルシートURLです。
Dateの書式が間違っていると無限ループする問題を解消 §
「過去ログ再作成で、日付が不正なメールに対応するスレッドファイルが作成されない」の件と同じメールで発生する問題です。
Fromの電子メールアドレス中に改行が含まれると無限ループする問題を解消 §
これも、実際にそのような不正なフォーマットのメールが送られてきて分かった問題です。
List-Tei Error Reportに、「これは、りすと亭サーバよりサーバ管理者宛に自動送信されるエラーレポートです。 繰り返し同じエラーが報告される場合は、原因を調べ解消する必要があります。」のようなメッセージが含まれない問題を解消 §
管理者へのエラーメールを少しだけ分かりやすく改善。
docmlclear.htmlをsetupに追加 §
「メッセージのカウント値を設定する機能を追加する」の機能を使って行う、メッセージ番号を1からやり直すやり方の説明ページをセットアップに追加。
カウンタのカウントを初期状態に戻す手順をマニュアルに追加記述する §
上記ファイルのこと。
配送時、envelope-fromとReturn-Pathを送信者自身に設定するオプションを追加 (管理レベル0) §
利用者からのリクエストにより追加。動作を正しく理解し、それが必要でありかつ問題なく運用できる場合にのみ使用して下さい。分からない場合は、指定しないで下さい。
mldef.uischemaの用語を直す。オフ→false、オン→true §
用語表記の統一です。
受信したメールのファイルが消失しても処理を止めない。発生時はエラーを管理者に通知する。発生時、メールの配送処理は次回順番が回ってきた時に行われる §
アンチウィルスソフトが、受信した電子メールを保存したファイルを削除してしまう場合があるようです。りすと亭は、POPサーバから取得したメールを一度ファイルに記録し、それから処理を始めます。しかし、このファイルが消えてしまうと例外が発生し、処理が中断します。次の処理の機会に再び同じことを試みます。しかし、またファイルが消えてしまうため、処理が中断します。これにより、永遠に処理が進まず、そのメール以降に到着したメールを処理するチャンスもありません。このような無限ループが起こらないように対策を入れました。もしメールを記録するファイルが消失した場合は、管理者に電子メールにてそのような状況が発生したことを伝えます。りすと亭側では、なぜファイルが消えたのか理由を把握できませんが、アンチウィルスソフトのログ等を調べれば理由が分かると考えられます。
簡易HTTPD機能内で1ml_logmsg.htmlへのアクセスはlog.htmlへのアクセスと見なす §
旧バージョンとの互換性のため、古いファイル名でアクセスできる必要があります。特定メッセージへの固定リンクなどが、これによって維持されます。
Char.IsDigitは意図しない動作なのでSimpleCharTestLib.SimpleCharTest.IsDigitに置き換える §
プログラム上の問題の解消です。通常の運用ではほとんど問題にならないはずです。