Smart Mailbox Manager for SAKURA

Web関連

概要

Smart Mailbox Manager for SAKURAは、さくらインターネットのメールサーバー、メーリングリストの転送先、配信先をユーザー管理データベースで細かく管理できるようにする拡張スクリプトです。サーバー上に設置して、サインインして利用します。

Smart Mailbox Manager for SAKURAは、以下のようなシーンで便利にお使いいただけます。

  • 多くのアカウントを設置している
  • 多くの転送先、配信先を設定している
  • 転送先、配信先の更新が頻繁
  • メールアドレスの所有者情報を明確にしたい
  • 同じユーザーがいくつもメールアドレスを登録しているので混乱する

Smart Mailbox Manager for SAKURAには、以下のような特徴があります。

  • 転送先、配信先のメールをユーザー情報と紐付けて管理できる
  • 複数のメールアドレスを利用しているユーザーの管理にも対応
  • 転送、配信の登録解除はチェックボックスをクリックするするだけ
  • すべての登録が画面遷移なしのリアルタイム操作で可能
  • メーリングリストに以下のオプションを設定できる
    • 返信先(Reply-to)をメーリングリストアドレスに設定
    • メーリングリストアドレスを送信元に設定(DKIM対応)
    • リプライマークとメーリングリストナンバーの重複を折りたためる
  • 上級ユーザー向け
    • 簡易SSOインターフェースを備えています
    • ほぼすべての作業がサインインユーザーの署名付きでログに記録されます
  • 現在のところ、メールアカウントやメーリングリストの新規開設の機能は実装していませんので、さくらインターネットの標準コントロールパネルから行って下さい。

ご注意

  • 本スクリプトはさくらインターネットのレンタルサーバ・スタンダードプランでのみ動作確認しています。他のプランでの動作は確認しておりません。
  • 本スクリプトはすべての環境での動作を保証するものではありません。
  • 本スクリプトの使用により何らかの損害が発生したとしても、著作者は一切責任を負いません。
  • 本スクリプトのカスタマイズは自由に行っていただけます。
  • 本スクリプトの利用上のご質問やご要望に著作者がお応えする保証はありませんこと、予めご了承下さい。
  • Smart Mailbox Manager for SAKURAはドネーションウェアです。どなた様も無料でご利用になれます。ドネーションの方法についてはこちらをご覧ください。

使い方

デモサイトを使用してみる

以下にデモサイトがありますので、実際に触れて使用感をつかんでみて下さい。ログインID、パスワードは、ともに example です。

  • 登録されている情報はすべてダミーデータですので、操作の結果はサーバーに影響しません。気兼ねなくお試し下さい。
  • 呼び出したデモサイトは24時間経過すると自動的に消去されます。
  • 再度、お試しになりたい場合は、あらためて上記のボタンをクリックしてログインし直してください。何回でもお試しいただけます。

ユーザーリスト画面

サインインすると最初に表示される画面です。編集したいユーザーの氏名をクリックすると、ユーザー編集画面が開きます。新規ユーザーを登録したい場合は「新規登録」ボタンをクリックします。

その他、以下のような機能があります。

  • 「あかさたな」で絞り込みが可能です。登録人数が多い場合に便利です。
  • 各項目でソートが可能です。ソート項目は画面遷移しても記憶されます。

ユーザー編集画面

ユーザーの編集画面です。ユーザーの属性と、ユーザーが所有しているメールアドレスの管理、およびサーバー上のメールアカウントへの転送登録・解除、メーリングリストへの配信登録・解除をこの画面上で行えます。

  • 最上部に、ユーザー情報の編集枠が並んでいます。よみがな、氏名、所属、備考の4つの項目を、目的に応じてお使い下さい。ユーザー一覧画面では、いずれの項目でもソートすることができます。
  • よみがなは、必ず全角ひらがなで入力してください。ユーザー一覧画面で絞り込み情報として使用します。
  • ユーザー情報欄の下に、そのユーザーが所有するメールアドレスを登録するブロックが並びます。メールアドレスはいくつでも登録可能です。
  • 管理対象のメールサーバーで作成したメールアカウントを登録することもできます。その場合は、送信メールが無限ループにならないよう注意して登録してください。
  • メールアカウント(CC)、メーリングリストアカウント(ML)は、初期状態では登録済みのアカウントのみ表示されています。「未登録アカウント表示」をクリックすると、未登録アカウントが表示されます。いずれもチェックボックのON/OFFで登録解除が可能です。
  • メーリングリストアカウントにもコメントを付けることができます。これは、メールアカウント一覧画面で設定できます。

メールアカウント一覧画面

ユーザー管理画面上部の「メールアカウント一覧」をクリックすると、メールアカウント一覧画面が表示されます。

  • 上部のFML CUSTOMIZEチェックマークは、FMLの設定をワンタッチでカスタマイズするためのインターフェースです。詳細は別項「FML CUSTOMIZEチェックボックスについて」で説明します。
  • 上部ブロックはメーリングリストアカウント一覧です。
  • 初期状態では、アカウント名と配信先として登録されているメールアドレスの数と上記カスタマイズの有無だけが表示されています。アカウント名をクリックすると、下の画面のように登録されているメールアドレスの一覧が所有者情報付きで表示されます。
  • アカウント名の下に表示されているコメントは、コメントをクリックすることによって編集が可能です。(さくらインターネットのコンパネでは、メーリングリストアカウントにコメントは付けられません。)
  • 氏名をクリックするとそのユーザーの編集画面が開きます。右上の「リストビュー」をクリックするとユーザー一覧画面が開きます。

下ブロックのメールアカウント一覧も、基本的にメーリングリストアカウントと同じ機能をもっています。

オプション設定画面

いくつかのオプションを設定する画面です。通常はサインインを許可するユーザーの管理以外に、オプションを変更する必要はありません。

  • allow_sso_signin :
    簡易SSOを使用する場合にONにします(上級者用)。通常はOFFにします。
  • allowed_referer1 :
    ajaxサーバー側で受け入れ許可するリファラを設定します。インストーラで自動的に設定されるので、通常はそのままで運用します。
  • disable_copyright :
    商用利用などでコピーライトメッセージを消したい場合にONにします。
  • fml_comment :
    メーリングリストアカウントへのコメントを許可します。
  • fml_options :
    メールアカウント一覧画面にFML CUSTOMIZEチェックボックスを表示します。
  • mbox_filter_view :
    メールアカウント一覧画面で、そのメールアカウントに登録されたメールアドレス一覧の下にメールサーバーのフィルター情報をそのまま表示します。サーバー内の挙動をモニターしたいときに使います。
  • session_control :
    必ずONで利用して下さい。OFFで利用する場合は、BASIC認証などのセキュリティ対策が必要です。なお、誤ってこのキーを削除した場合にも、セッション管理が働く設計にしてあります。
  • show_domain :
    メールアカウント一覧画面にサーバーのドメインを表示します。
  • show_mailbox_path :
    同様に、サーバー上のパスを表示します。
  • ユーザーIDの登録セクション :
    ユーザーIDの登録セクションには、管理者チェックボックス、サインインの際に入力するユーザーIDとユーザー情報として表示される氏名、そしてパスワードの入力欄があります。管理者にチェックを入れると、オプション管理画面へのアクセス権が付与されます。

    以上、いずれも、項目を削除する場合は、削除チェックボックスにチェックを入れた上で「確定」をクリックします。

FML CUSTOMIZEチェックボックスについて

このチェックボックスにチェックを入れることによって、以下のFMLカスタマイズオプションが追加されます。(具体的にはconfig.phに追記されます。)

以下のFMLカスタマイズオプションは、現時点の仕様では、すべてのメーリングリストアカウントに一括で設定され、設定する機能を選択することはできません。
登録されるオプションを選択したい場合は、customize_fml.phpの内容を編集してください(上級者向け)。
登録するメールアカウントを限定するには、かなりスクリプトに手を加える必要があります。操作画面も複雑になりすぎるので、現状では仕様に盛り込む予定はありません。

Reply-to設定

さくらインターネットのメーリングリストの標準設定では、着信したメールに返信しようとすると差出人への個メールによる返信になってしまいます。メーリングリストでは不便なことが多いので、Reply-toにメーリングリスト自体のアドレスを設定します。

リプライ表示の折りたたみ(Beckyタイプブラケット)

たとえば、abcというメーリングリストでリプライのラリーが始まると、表題が以下のように長く伸びて見にくくなることがあります。

  • [abc:0001] はじめまして
  • [abc:0002] Re:[abc:0001] はじめまして
  • [abc:0003] RE:[abc:0002] Re:[abc:0001] はじめまして
  • [abc:0004] Re:[abc:0003] RE:[abc:0002] Re:[abc:0001] はじめまして

これを、以下のように折りたたんで、見やすくする機能を追加します。

  • [abc:0001] はじめまして
  • [abc:0002] Re: はじめまして
  • [abc:0003] Re[2] はじめまして
  • [abc:0004] Re[3] はじめまして

この設定は、Case K Qamadaさんのアイディアを参考に、RimartsのメールクライアントBecky2の仕様に近づけた改良版です。この場を借りて感謝を申し上げます。

メーリングリストを送信元にする

最近、Gmailやoutlookなどで送信元を改ざんしたメールを着信拒否するなど、セキュリティポリシーが強化される動きがあります。メーリングリストは送られた来たメールを転送する形式となるため、着信拒否の対象になりやすい性質をもっています。

そこで、転送ではなく、メーリングリストのアカウントから改めて送信する形式に変更して、配信の到達可能性を高めるための設定を行います。

この設定を行うと、メールの差出人は以下のような表記となります。

From:”差出人(sender@example.com)” <ml_account@example.jp>

差出人に個メールで返信したい場合は、()内のメールアドレスをコピーして送信先に指定します。

この設定は、mekiku.comさんのアイディアをほぼそのまま採用させていただきました。この場を借りて感謝を申し上げます。

サーバーと管理データベースの不整合について

Smart Mailbox Manager for SAKURAを導入後、さくらインターネットの標準コントロールパネルを使ってメールアカウントやメーリングリストの転送・配信設定を編集した場合、Smart Mailbox Manager for SAKURA内のデータベース情報とサーバー上の登録情報に以下のような不整合が発生します。

  • Smart Mailbox Managerデータベースには登録があるメールアドレスが、サーバー上には存在しない
  • Smart Mailbox Managerデータベースに登録のないメールアドレスがサーバー上に存在する

Smart Mailbox Manager for SAKURAは、このような不整合を自動検出して、修正する仕組みを備えています。

メールアカウントやメーリングリストアカウントに不整合が見つかると、メールアカウント一覧画面の該当するアカウントが赤字で表示され、「サーバー/マネージャー不整合」というサインが出ます。

該当のアカウント名をクリックすると、以下のように不整合の状況が表示されますので、削除か登録を選択して不整合を修正します。

  • マネージャー未登録(青緑の表示)
    サーバー上に登録された転送先・配信先のメールアドレスが、Smart Mailbox Manager側に登録されていないため、ユーザー情報と連携した管理ができない状態です。以下のどちらかを選択して、整合させて下さい。
    • 削除:サーバー上に登録されたメールアドレスを削除します。
    • 登録:このメールアドレスをSmart Mailbox Managerに登録します。不整合メールアドレスはクリップボードにコピーされますので、登録後は以下の手順で、このメールアドレスのユーザーと紐付けて下さい。
      • すでにこのメールアドレスのユーザーが登録されている場合
        ユーザーのリストビュー画面から該当するユーザーを選択し、このユーザーが所有するアドレスとして追加してください。クリップボードにコピーされているメールアドレスを「メール追加登録」欄に貼り付けてください。
      • このメールアドレスのユーザーが未登録の場合
        新規ユーザーの登録画面でこのメールアドレスのユーザーを登録した上で、このメールアドレスを登録してください。
  • サーバー未登録(赤の表示)
    Smart Mailbox Manager側の情報ではこのアカウントに登録されているはずのメールアドレスがサーバー上に登録されていません。以下のどちらかを選択して、整合させて下さい。
    • 削除:Smart Mailbox Manager側のアカウント登録情報を解除します。
    • 登録:このメールアドレスをサーバー側に登録します。

ユーザー情報等のダウンロード、アップロードについて

Smart Mailbox Manager for SAKURAには、現在のところ、ユーザー情報の一括登録やダウンロードの機能がありませんが、以下の方法で簡単に実現できます。必要に応じてお試しください。

  • Smart Mailbox Managerのユーザー情報はSQLiteのデーターベースファイルとして以下に保管されています。これをファイルマネージャーやFTPソフトでダウンロードします。
    smmb/db/emailhub.db
  • DB Browser for SQLiteというアプリケーションをPCにインストールします。Windows、Mac OS、Linux用が無料で提供されています。
  • DB Browser for SQLiteでダウンロードしたemailhub.dbを開き、ファイルメニュー下の「エクスポート」機能を使って、CSV形式などでデータを取り出してください。ユーザー情報はuser_hubというテーブルに登録されています。
  • ユーザーの一括登録を行いたい場合は「インポート」を使うか、SQL実行タブでINSERT INTO文を発行してください。一括登録した後はemailhub.dbをサーバーに書き戻します。その際、念のため、元のemailhub.dbのコピーを手元に残しておくことを強くお勧めします。
    user_hubテーブルのフィールドは以下のようになっています。
    • id:オートインクリメント属性なので登録時の指定は不要
    • univ_id:一般公開版では使用していないので、登録時の指定は不要
    • xoops_id:同様
    • name:氏名
    • reading:よみがな(全角ひらがな推奨)
    • organizasion:所属団体等任意で
    • comment:備考欄
  • さらにSQL文を書ければ、用途に応じた様々なスタイルの一覧表を簡単に取り出すことができますので、ぜひチャレンジしてみてください。

作業ログの閲覧について

Smart Mailbox Manager for SAKURAでの操作内容はすべて、サインインしているユーザー情報とともにデータベース上のログに記録されます。ただし、現時点ではログを閲覧する機能が提供されていません。

ログを確認したい場合は、前項同様、DB Browser for SQLiteにて閲覧またはエクスポートしてください。ログは、logテーブルに記録されています。

サーバーへの設置方法

お知らせ:オンラインセットアップの提供を開始しました。以下はその説明となります。

サーバー上の設置場所を決める

サーバー上の設置場所を決めておきます。以下の例の場合、オンラインセットアップではscriptフォルダの下にsmmsというフォルダが作られ、そこにSmart Mailbox Managerがインストールされます。

例:https://example.jp/script/

オンラインセットアップ実行ファイルをダウンロードする

以下のZIP書庫をダウンロードして解凍し、setup.phpを取り出します。

setup.phpをサーバーにアップロードして実行する

setup.phpをSmart Mailbox Managerをインストールしたい場所に、FTPソフトやさくらインターネットのファイルマネージャーなどでアップロードします。

https: //example.jp/script/setup.php ← 実行する

自動的に最新版のSmart Mailbox Managerがダウンロードされ、インストーラーが起動します。

https: //example.jp/script/smms ← ここにインストールされます

管理者のIDとパスワードを入力すると設定が完了し、Smart Mailbox Managerが起動します。

メモ:smms以外の名称のフォルダで運用したい場合は、FTPソフトやファイルマネージャーでリネームしてお使い下さい。

ダウンロード(手動でインストールしたい場合)

手動でインストールしたい場合は、以下のZIPファイル(Smart Mailbox Manager for SAKURA:smms)をダウンロードします。改訂情報はこちらでご覧いただけます。

お詫び:以前のバージョンVer.1.0に、デモ用のデータが入ったデータベースを同梱していました。申し訳ありませんでした。

手動インストールの手順

ダウンロードしたSmart Mailbox Manager for SAKURAをサーバーにアップロードします。

ダウンロードしたZIPファイルを解凍して、あらかじめ決めた設置場所にFTPソフトやさくらインターネットのファイルマネージャーなどでアップロードします。ファイルマネージャーを使う場合は、Zipファイルのままアップロードして、サーバー上で解凍する方法もあります。

アップロードしたフォルダが、仮に https://example.jp/script/smms/ であるものとします。

この場合は、以下のようにインストーラーを実行します。

https:// example.jp/script/smms/install.php

インストーラーが行う作業は以下のとおりです。

  • サーバー上のメールアカウント、メーリングリストの登録情報をスキャンして、Smart Mailbox Manager for SAKURAのデータベースに登録する。
  • ajaxサーバーの呼び出し許可用に、サーバーのドメインを許可対象のリファラとしてオプションに登録する。
  • 管理者のIDとパスワードを登録する。

以上が完了すると、サインイン画面が表示されます。登録した管理者IDとパスワードでサインインしてください。最初のサインイン時にインストーラーは削除されます。

以上で、設置作業は完了です。

バージョンアップの手順

Ver.1.0の場合

以下のアップデータをダウンロード&解凍し、Smart Mailbox Managerのフォルダ直下にvup.phpアップロードして実行してください。

例:https:// example.jp/script/smms/vup.php

Ver.1.2以上の場合

管理者権限でサインインして設定画面に入ります。新しいバージョンがリリースされている場合、画面の最下段に新バージョンの情報が表示されます。更新ボタンをクリックすると、自動でバージョンアップされます。

手動でアップデートする場合

安全のために、以下のデータベースファイルのバックアップを作って下さい。

例:https:// example.jp/script/smms/db/emailhub.db

新しいバージョンのSmart Mailbox Manager一式のうち、上記のdbファイル以外のすべてのファイルを設置場所のフォルダに上書きすれば、バージョンアップは完了します。

技術情報

Smart Mailbox Manager for SAKURAの技術的な情報をご案内します。

  • PHPとJavaScriptで書かれています。
  • データベースはSQLite3をPDOで呼び出しています。
  • メールサーバーの転送先情報、コメント情報はサーバー側の以下のパスを直接操作します。
    • /home/[username]/MailBox/[account]/.mailfilter
    • /home/[username]/MailBox/[account]/.comment
  • メールアカウント(FML)の配信先情報(actives, members)、コメント(独自に設置)、オプション設定は以下のパスを直接操作します。
    • /home/[username]/fml/spool/ml/[account]/actives
    • /home/[username]/fml/spool/ml/[account]/members
    • /home/[username]/fml/spool/ml/[account]/.comment(独自に設置)
    • /home/[username]/fml/spool/ml/[account]/config.ph
    • /home/[username]/fml/spool/ml/[account]/bak.config.ph(更新時にバックアップを作成します)

より詳細な技術情報については、時間のあるときに、追って補足していきたいと思います。

改訂情報

  • 2025/05/08 Ver.1.0 公開初版
  • 2025/06/11 Ver.1.1
    • DELETE_CCのログに氏名情報が記録されない不具合を修正
    • 一般ユーザーのメールアカウントリスト画面にFMLオプション設定チェックボックスを表示しないようにした。
    • 一般ユーザーにも「設定」画面を設け、パスワードとユーザー名の変更ができるようにした。
    • バージョン情報をversion.txtから取得する仕様にした(1行目の情報)
    • Ver.1.0にデモデータが登録されたデータベースを同梱してしまっていた。白紙状態のデータベースに差し替えた。
  • 2025/06/13 Ver.1.2
    • アップデーターを実装した。
  • 2025/06/14 Ver.1.2.1
    • デモモードではバージョン更新情報の表示を抑止するようにした。(common.phpの上書を回避するため)
  • 2025/06/16 Ver.1.2.2
    • バージョン更新でもログに記録が残るようにした

おわりに

余談になりますが、Smart Mailbox Manager開発の動機について、少し。

わたしの活動領域とそのブランドイメージとの相性のよさから、さくらインターネットのサーバーとの付き合いは20年近くになりました。

そんな長い付き合いのなかで、不満がなかったわけではありません。その筆頭は、メールアカウントやメーリングリストの管理機能の貧弱さです。(どこのサーバーでも同じようなものでしょうから、特段、さくらインターネットが劣るということではないとは思いますが。)

具体的には、以下のようなポイントが気になっています。

  • 転送先、配信先にメールアドレスの指定しかできず、そのメールアドレスの所有者が誰なのか、別に台帳をつくって管理しなければならない。
  • メールの登録、解除にコピペの手作業が必要だったり、一覧性が悪かったり、操作性がいまひとつ。
  • メールアカウントにはコメントが付けられますが(以下の「ユーザーの説明」欄)、メーリングリストにはつけられない。

こうした不満を抱えながら、試行錯誤を重ねているうちに、サーバーの登録情報をデータベースと紐付けて管理するスクリプトをつくったらいいかも、と思い立ちました。こつこつ試作を続け、当初のイメージ通りに完成したのがSmart Mailbox Manager for SAKURAです。

現場で実際に使用してみて、利用価値が十分にあることを実感しましたので、これを多くの方にも使っていただこうと考え、公開した次第です。

以上で、Smart Mailbox Manager for SAKURAの利用について簡単に説明しました。多くの方にご利用いただければ幸いです。

なお、ご利用の環境や、制作者の気づかない不備などで、不具合などが発生する可能性はゼロではありません。その場合でも、制作者は必ず対応する責務は負いませんこと、予めご了承下さい。免責事項に相当する注意書きもあわせてお読み下さい。

ドネーションウェアについて

Smart Mailbox Manager for SAKURAはドネーションウェアとして公開しています。お気持ちと余力のある方は、ご支援いただけるとありがたいです。以下のBASEサイトで決済していただけます。

nohara powered by BASE
タイトルとURLをコピーしました