[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

ケーススタディ: メールマガジン (1)

Warning

ここではメールヘッダによる認証しか取り上げていませんが、 安全のため、もっと厳しい設定を検討してください。

たとえば、 そもそもインターネット側に SMTP インターフェイスがないようなサーバの設定、 およびサーバの設置場所の選定などを行なうべきです。

fml8 単体で処理できる PGP 認証 が理想ですが、 この場合、 メールマガジンの担当者に PGP/GPG を使える技術力が要求されます。 ここが PGP 話のネックです。

メールマガジンは 「投稿可能なメンバーリストをカスタマイズ」 することで行なえます。

$member_maps から $primary_member_map を抜き、 かわりにメールマガジンを送信可能なメンバーのリスト (ここでは $ml_home_dir/members-mailmag ファイルとしましょう)を $member_maps に追加します。

member_maps	=	$ml_home_dir/members-mailmag
このファイルに、メールマガジンの投稿者のアドレスを書いて下さい。

なお subscribe コマンドの利用方法はデフォルトのままでかまいません。 [1] というのは subscribe や unsubscribe コマンドは 「 $primary_member_map や $primary_recipient_map に対する変更を加える」という仕様だからです。 一方、 メンバー認証時の探索には member_maps や recipient_maps を使うのです。 なお、それぞれのデフォルト値は次のようになっています。

member_maps             =       $primary_member_map
                                $admin_member_maps

recipient_maps          =       $primary_recipient_map
                                file:$ml_home_dir/actives
$recipient_maps に actives ファイルが入っているのは互換性のためです (fml8 では、actives ファイルを使いませんが、 fml4 のディレクトリ構造そのままでも動作するようにするための互換性です)。 よって、 これらの値をうまく設定すれば、 こういった設定が容易という具合になっているわけです。

さて、上述の

member_maps	=	$ml_home_dir/members-mailmag
という設定をした場合、動作は次のようになります。

ユーザが subscribe すると、そのアドレスは recipients ファイル($primary_recipient_map) と members ファイル($primary_member_map)に追加されていきます。 認証は members-mailmag にたいして行なわれるので、 members ファイルは認証時の探索に使われません。 そのため、一般ユーザは投稿できません。 投稿可能なユーザは members-mailmag ファイルにあるアドレスのユーザだけです。

一方、 配送は recipients ファイル($primary_recipient_map)を元に、 subscribe したユーザ宛にたいして行なわれます。 この部分は普通のMLと一緒です。 このように map が細かく設定されていることを利用すれば、 メールマガジンが簡単に実装できます。

別解としては、逆の方法も可能です。

primary_member_map	=	$tmp_dir/members-dummy
などと設定し、メンバーリストの新規分追加先を変更して闇に葬る案です。 members には投稿可能なアドレスだけを書きます。 このほうが fml4 風で分かりやすいでしょうか。

Notes

[1]

fml 4.0 のように subscribe コマンドの仕方を変更するといったやり方で実装していません。 メンバーの認証方法を config.cf で細かくコントロールできるので、 それを使う方法が subscribe コマンドを変更するより簡単です。

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >