別のリストの読者を参照する(疑似グループ参照)¶
sympaには読者のグループ概念はありませんが、同じsympaのリストを用いてグループのような運用を行うことが出来ます。
- 例
部署Aに社員が10人、部署Bに社員が10人いるとして、基本的にリストは部署A全員か部署B全員またはその両方である。
そのためリストに個人を登録するのではなく、部署Aまたは部署Bとして登録したい。
この場合、限りなく非公開に近いリスト設定(たとえば「非公開リスト用」)で部署Aと部署Bのリストを作成します。
・部署Aのリスト(team-a@ml.example.com)
・部署Bのリスト(team-b@ml.example.com)
例えばリストXに部署Aを登録する場合、「読者にteam-a@ml.example.comを登録する」という方法でも一応は解決できます。
通常はこの方法でも問題はありません。(ただしあまり効率は良くありません)
もしリストXに部署Aと部署Bを登録する場合かつ「実は部署Aにも部署Bにも在籍する社員Zがいる」という場合、上記のリストを
読者にする方法では「リストXからteam-a経由で社員Zに届くメール」「リストXからteam-b経由で社員Zに届くメール」の
2通が送られてしまいます。(同一メッセージIDでメーラ側で1通に統合されて見えるかもしれません)
そこで、sympaでは「リストを元に読者を取得し、重複を統合し、あくまでこのリストの読者として登録する」機能があります。
設定方法¶
- 上記で言う実際に登録する「リストX」側で「リストの設定変更」→「データソース」を開きます。
データソースはテキストファイルやLDAP等も利用出来ますが、ここでは簡単な同一sympa内の別のリストから取得するものとします。 - 「他のリストからの取り込み (include_sympa_list)」の項目を設定します。
- このデータソースの略称 (name)
任意の名称でかまいません。
例では「部署A」等のようにつけると良いでしょう。 - 取り込むリスト (listname)
取り込むリストのアドレスを記入します。
例では「team-a@ml.example.com」などがこれにあたります。 - フィルタ定義 (filter)
もしあらかじめ除外したい、または条件に当てはまるものしか取り込みたくない場合に記載します。
ここでは「別のSympaの読者」が対象であるため、これに基づいた下記パラメータへの条件式を書く必要があります。メール(email) 名前(gecos) 受け取りかた(reception) 見えかた(visibility)
つまり、次のような記載を行います。正規表現等は原則利用出来ない点に注意が必要です。
(非公式ですがjQueryの関係でjavascriptが使えるので、Stringクラスのmatchメソッド(属性名.match("正規表現")など)は利用可能なようです。)・一致(見え方で「表示される」設定で、Web画面上で見える読者であれば) (visibility == "noconceal") ・否定(受け取りモードで「受け取らない」以外の何かしらで配送を見ている設定であれば) (reception != "nomail") ・一致の列挙(OR)(指定の管理者系アドレスであれば) (email == "admin@example.com")||(email == "postmaster@example.com") ・否定の列挙(AND)(指定の管理者系アドレスでなければ) (email != "admin@example.com")&&(email != "postmaster@example.com")
- ただしアドレスの除外はよほど決まったパターンでなければここで行うことは推奨しません。(後述)
- 取り込みを休止する時間帯 (nosync_time_ranges)
システムのバックアップや元となるリストのメンテナンス時など取込を行いたくない時間帯を指定します。
「HH:MM-HH:MM」形式で範囲を指定しますが、複数または0:00をまたぐ場合はスペース区切りで列挙します。(25時形式も不可)23:00-23:59 00:00-01:00
- このデータソースの略称 (name)
- 以上を設定し、ページ最下部の「更新」を実行します。
更新後もう一度「データソース」ページを開き直すと、「他のリストからの取り込み (include_sympa_list)」の既存設定編集削除と
新規「他のリストからの取り込み (include_sympa_list)」の追加フォームが追加されています。
設定反映¶
データソースは登録時に記載されるとおり「おおよそ1時間以内には反映」されます。
ただし読者情報を変更する場合や急ぎ確認したい場合など、即時反映したい場合、「読者一覧画面」の最上部に追加されている「データ
ソースと読者情報の同期」ボタンを押すことで即時の反映が行われます。このボタンはデータソース設定がある場合のみ表示されます。
- 一定時間ごとのバックグラウンドタスクで追加(ポップアップで説明される1時間以内というのがこれ)
- 前回同期から一定時間経過時に、リスト設定を変更した
- このリストにメールが届いた際、読者に配送する直前
ここで同期が担保されるため、基本的には同期を急ぐ必要はありません
同期の除外¶
もし同期した読者の中で、「このリストではこのアドレスは取り込みたくない」というケース(一時的な休職など)がある場合、
次の方法で除外リストに登録して除外することが可能です。この場合データソースごとにフィルタ登録を行う必要がありません。
- 一度読者としてデータソースから取り込んだ以上体にします(読者一覧に表示される状態)
- 読者一覧で当該アドレスの行の「ソース」が「include」であることを確認します
- 当該アドレスを読者一覧画面で「削除」します
- 当該アドレスは読者管理画面上部「運営オプション」の「除外」に登録されます
- 復帰させる場合、この画面から「選択したメールアドレスを復活」します
注意点として「一度リストに登録する必要がある」ことと、「復活させないかぎり再度取込が行われない」(忘れがち)という
ものがあります。そのため、軽微な場合は手間があったとしてもフィルタを都度設定しても良いかもしれません。
(ただしフィルタも構文を間違うと全員取り込まれない動作となる可能性があります)