diff options
Diffstat (limited to 'src/mailman/messages/ja/doc')
| -rw-r--r-- | src/mailman/messages/ja/doc/Defaults.py.in | 1442 | ||||
| -rw-r--r-- | src/mailman/messages/ja/doc/mailman-install.tex | 1933 | ||||
| -rw-r--r-- | src/mailman/messages/ja/doc/mailman-member.tex | 1787 |
3 files changed, 5162 insertions, 0 deletions
diff --git a/src/mailman/messages/ja/doc/Defaults.py.in b/src/mailman/messages/ja/doc/Defaults.py.in new file mode 100644 index 000000000..cfbcc9ed8 --- /dev/null +++ b/src/mailman/messages/ja/doc/Defaults.py.in @@ -0,0 +1,1442 @@ +# -*- python -*- +# -*- coding: euc-jp -*- + +# Copyright (C) 1998-2007 by the Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. + +# [訳注] このファイルは, Mailman 2.X 配布物に含まれる +# Mailman/Defaults.py.in (SF.net での CVS リビジョンは 2.135) +# のコメント部分を日本語 (共通語) に翻訳したものです. +# 配布等の条件は原文と同様, GNU 一般公衆利用許諾契約書 (GNU +# General Public License) に従います (上記も参照ください). 内容の正 +# 確な理解のためには, 配布物に含まれる原文を参照されることをお勧めし +# ます. +# 訳者: IKEDA Soji <nezumi@poem.co.jp> + +"""配布時点の Mailman の重要な設定変数の既定値.""" + +# サイト固有の設定のためにこのファイルを変更しては*いけない*. かわりに +# そういったことは, かならず mm_cfg.py の指定された範囲に書くこと. +# 詳しくは mm_cfg.py のコメントを見る. + + +import os + +def seconds(s): return s +def minutes(m): return m * 60 +def hours(h): return h * 60 * 60 +def days(d): return d * 60 * 60 * 24 + +# 便利な定数 [>=2.1.2] +try: + True, False +except NameError: + True = 1 + False = 0 + +Yes = yes = On = on = True +No = no = Off = off = False + + + +##### +# システム全般の既定値 +##### + +# 画像のロゴを使うかどうか. 0 に設定すると「我々の後援者」の画像のロゴ +# を無効にし, テキストのリンクを張るだけになる (これはショートカットの +# 「favicon」も無効にする). そうでなければ, ここはロゴ画像の URL のベー +# スパスにしなければいけない (そして, 最後のスラッシュは含めなければい +# けない). Mailman のロゴ入りページフッタまでも無効にしたいと言うのな +# ら, Mailman/htmlformat.py: MailmanLogo() をハックすること. リンクと +# 画像の名前はそこにハードコードしてある. +IMAGE_LOGOS = '/icons/' + +# Mailman の favicon の名前 +SHORTCUT_ICON = 'mm-icon.png' + +# MAILMAN_URL は, ミラーのどれかを指すようにしたいとき以外は変えないこと. +MAILMAN_URL = 'http://www.gnu.org/software/mailman/index.html' +#MAILMAN_URL = 'http://www.list.org/' +#MAILMAN_URL = 'http://mailman.sf.net/' + +# Mailman は, (少なくとも) 二つの完全修飾ドメイン名 (FQDN) について知 +# る必要がある; 1) あなたの URL に使うホスト名と, 2) あなたのドメイン +# の電子メールアドレスに使うホスト名. たとえば, みんながあなたの +# Mailman システムに"http://www.dom.ain/mailman" でアクセスするのなら, +# あなたの URL に使うFQDN は "www.dom.ain" になる. みんながあなたのシ +# ステムに "yourlist@dom.ain" 宛でメールを送るのなら, あなたの電子メー +# ルの FQDN は "dom.ain" になる. DEFAULT_URL_HOST は前者を制御し, +# DEFAULT_EMAIL_HOST は後者を制御する. Mailman はまた, 一方を他方にマッ +# プするやりかたも知る必要がある (これは特に, 仮想ドメインでの運用で重 +# 要). 新しくマップを追加するのには +# "add_virtualhost(URLのFQDN, 電子メールのFQDN)" が使える. +# +# mm_cfg.py で DEFAULT_EMAIL_HOST と DEFAULT_URL_HOST を変更する必 +# 要がないのなら, ほかにやることはなし; 既定のマップは自動的に追加される. +# しかし, あなたが mm_cfg.py のほうで変数をどれか変えたのなら, 次のも +# のも書いておくこと: +# +# add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) +# +# だってそうしないと, 既定のマッピングが修正されないから. +DEFAULT_EMAIL_HOST = '@MAILHOST@' +DEFAULT_URL_HOST = '@URLHOST@' +DEFAULT_URL_PATTERN = 'http://%s/mailman/' + +# DEFAULT_HOST_NAME は DEFAULT_EMAIL_HOST に置き換わった [>=2.1]. +# しかし, サイトによっては前のものがまだ mm_cfg.py ファイルに書いてあ +# るかも. そうなら, そっちを信じることになってる. そうでなければ, +# DEFAULT_EMAIL_HOST のほうを信じることになってる. DEFAULT_URL につ +# いても同様. +DEFAULT_HOST_NAME = None +DEFAULT_URL = None + +HOME_PAGE = 'index.html' +MAILMAN_SITE_LIST = 'mailman' + +# 通常はサイト管理者は, サイトパスワードで Web ページの認証をしたとき, +# リスト管理者として認証するようなクッキーを受け取る. このため, サイト +# 認証クッキーを渡すのはちょっと心配. だって, このクッキーが覗き見られ +# たり捕捉されたりすれば, 侵入者はサイトの全リストへのアクセス権を得る +# ことになる. 一方, サイトの全リストでいちいち認証しなおさなくていい +# のはとっても便利. サイト認証クッキーを認めるのなら, この値を Yes に +# する. +ALLOW_SITE_ADMIN_COOKIES = No + +# text/html パートをプレインテキストに変換するコマンド. これは結果を +# 標準出力に出力しなければいけない. %(filename)s には, プログラムが +# 処理する一時ファイルの名前が入る. +HTML_TO_PLAIN_TEXT_COMMAND = '/usr/bin/lynx -dump %(filename)s' + + + +##### +# 仮想ドメイン +##### + +# ここで, 仮想ホストのマッピングを設定する. これは主として, Web経由の +# リスト作成に使うので, その影響は現時点ではかなり限られたものだ. 新し +# くマッピングを追加するには add_virtualhost() 呼出しを使う. マップの +# キーは Utils.get_domain() で指定する文字列で, 値は DEFAULT_HOST_NAME +# に当たるもの. [>=2.1] +VIRTUAL_HOSTS = {} + +# Yes に設定すると, その計算機の listinfo ページと admin ページでの一 +# 覧が, web_page_url 設定オプションのホスト名がアクセスしているページ +# の URL にあるリストだけに--- 「その仮想ホストにあるリストだけに」--- +# 限られるようになる. No に設定すると, 一覧にはすべての公表された (つ +# まり公開の) リストが載る. +VIRTUAL_HOST_OVERVIEW = On + + +# 補助関数; mm_cfg.py ファイルで使える. 省略可能な emailhost 引数を抜 +# かすと, urlhost から名前の最初を取り除いたものが設定される, たとえば +# +# add_virtualhost('www.dom.ain') +# VIRTUAL_HOST['www.dom.ain'] +# ==> 'dom.ain' +# +def add_virtualhost(urlhost, emailhost=None): + DOT = '.' + if emailhost is None: + emailhost = DOT.join(urlhost.split(DOT)[1:]) + VIRTUAL_HOSTS[urlhost.lower()] = emailhost.lower() + +# で, ここで既定の設定をしておく. +add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) + +# 注意: すでにあるリストのドメインを変えるには、bin/fix_url.py を実行 +# するといいかもしれない. bin/fix_url.py スクリプトは, bin/withlist +# の中で実行する, こんなふうに: bin/withlist -l -r bin/fix_url.py リスト名 + + + +##### +# スパム防止の既定値 [>=2.1] +##### + +# この変数には, (ヘッダ, 正規表現) の形式の 2 要素のタプルのリストが入 +# る. Mailman/Handlers/SpamDetect.py モジュールがこれを使って, 届いた +# メッセージにマッチさせる. 届いたメッセージの指定されたヘッダにマッチ +# したら, そのメッセージはスパムの判定が下る. ヘッダは大文字小文字を区 +# 別せず, 後ろのコロンは付けてはいけない. 正規表現はいつも +# re.IGNORECASE でマッチする. +# +# 検索するものが多くなれば, 処理が全体として遅くなることに注意. スパ +# ム検出はリストに来るものだけでなく, -owners アドレスに来るものも含め, +# 明白に承認されたものでなければ, すべてのメッセージに対して働く. +KNOWN_SPAMMERS = [] + + + +##### +# Web インタフェースの既定値 [>=2.1] +##### + +# Mailman の Web インタフェースで使うほとんど全ての色は, 以下の変数で +# パラメタ化してある. このことで, ソースコードに大手術をしなくても簡単 +# に好みの色遣いに変えられるようになっている. +# なお, 一般に, テンプレートでの色はここには入っていない. というのは, +# 既定のテンプレートの色は, サイト全体とか仮想ドメイン全体とかリスト全 +# 体で簡単に上書きしてしまえるから. + +WEB_BG_COLOR = 'white' # ページの背景 +WEB_HEADER_COLOR = '#99ccff' # 大見出し +WEB_SUBHEADER_COLOR = '#fff0d0' # 小見出し +WEB_ADMINITEM_COLOR = '#dddddd' # オプション項目の背景 +WEB_ADMINPW_COLOR = '#99cccc' # パスワードテキストボックス +WEB_ERROR_COLOR = 'red' # エラーメッセージの色 +WEB_LINK_COLOR = '' # 真なら, LINK= を変える +WEB_ALINK_COLOR = '' # 真なら, ALINK= を変える +WEB_VLINK_COLOR = '' # 真なら, VLINK= を変える +WEB_HIGHLIGHT_COLOR = '#dddddd' # 真なら, listinfo と admin + # の表示で交互に色を変える + + +##### +# 保存書庫の既定値 +##### + +# 公開保存書庫の URL のテンプレート. これはいくつかの場所で使う: +# List-Archive: ヘッダ, リストの listinfo ページ, リストの管理ページで. +# +# これは "%(listname)s" がどこかに入った文字列でなければいけな +# い. Mailman はここにリストの名前を代入する. 文字列に "%(hostname)s" +# をいれることもできる. Mailman はここにホスト名 (たいてい +# DEFAULT_URL_HOST) を代入する. [>=2.1] +PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s' + +# 保存書庫が既定で有効かどうか. +DEFAULT_ARCHIVE = On + +# 保存書庫は既定で公開か限定か. +# 0=公開, 1=限定 +DEFAULT_ARCHIVE_PRIVATE = 0 + +# ARCHIVE_TO_MBOX +#-1 - なにも保存しない +# 0 - mbox 形式では保存しないが, Mailman の組込み HTML 保存書庫は作る +# 1 - mbox 形式で保存して, 外部の保存書庫作成機構で使う. +# 2 - mbox 形式で保存して, 組込み HTML 保存書庫も作る --- 外部の保存書 +# 庫作成機能と Mailman の組込み HTML 保存書庫の両方を使える. +# フラットなメールファイルは検索や外部保存書庫作成などに便利かも. +ARCHIVE_TO_MBOX = 2 + +# 0 - 年ごと +# 1 - 月ごと +# 2 - 四半期ごと +# 3 - 週ごと +# 4 - 日ごと +DEFAULT_ARCHIVE_VOLUME_FREQUENCY = 1 +DEFAULT_DIGEST_VOLUME_FREQUENCY = 1 # [>=2.1] + +# これらの変数は, 外部の保存書庫作成プログラムを制御する. 通常は, 保存 +# 書庫作成が有効 (上の ARCHIVE_TO_MBOX と, リストの archive* 属性を参 +# 照) なら, 組込みの Pipermail 保存書庫作成プログラムを使う. これは以 +# 下の変数がどちらもNo に設定されているときの既定値. 以下のものをどれ +# か設定するのなら, 値はos.popen() に渡せるシェルコマンドの文字列でな +# ければいけない. この文字列には次の置き換え文字列を入れられる: +# +# %(listname)s -- リストの内部名 +# %(hostname)s -- リストの電子メールホスト名 +# +# 保存されるものはこれを置き換えたものになる. os.popen() を使うことに +# 注意. +# +# これらの変数をどちらか設定するのなら, 両方とも設定しなければいけない +# ことに注意 (両方とも同じ文字列であってもよい). つまり, 外部保存書庫 +# 作成プログラムを設定すると, 保存書庫が公開でも限定でも関係なく動く. +PUBLIC_EXTERNAL_ARCHIVER = No +PRIVATE_EXTERNAL_ARCHIVER = No + +# マルチパートのメッセージを「フラット」なメッセージ (つまりシングルパー +# トのメッセージ) に変換するフィルタモジュール. これは Pipermail で必 +# 要だが, 外部保存書庫作成プログラムを使うのなら 0 に設定するといいか +# も. +# また, 自分で作ったモジュールに置き換えることもできるが, すくなくとも +# process() という関数を含んでいて, この関数が MailList オブジェクトと +# Message オブジェクトを引数にとるようになっていないといけない. これは +# メッセージを捨てるときは Errors.DiscardMessage を raise しないといけ +# ない. 捨てないときは, Message オブジェクトを必要に応じて修正しないと +# いけない. [>=2.1] +ARCHIVE_SCRUBBER = 'Mailman.Handlers.Scrubber' + +# Mailman.Handlers.Scrubber で, filename パラメタで示される添付ファイ +# ル名をそのまま使うか, それともかわりに 'attachement-xxx' を使うかを +# 制御するパラメタ [>= 2.1.6]. PC や Mac のアプリケーションがかなり長 +# い非ASCII のファイル名を使うようになってきたので, 既定値は True とし +# ている. 歴史的には, 2.1.6 では後方互換性のために False となっていた +# のだが, 2.1.7 ではより安全な運用のために True に変わった. +SCRUBBER_DONT_USE_ATTACHMENT_FILENAME = True + +# 添付のファイル名の拡張子をそのまま使うのは, ウィルスが拡張子を偽装し +# ていると危険かもしれない. ファイル名の拡張子で添付をフィルタするなら, +# ここを True に設定できる [>=2.1.6] +SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSION = False + +# この変数は, text/html のサブパートで何をするかを定義する. 完全に取り +# 除くか, エスケープするか, 外部プログラムでフィルタするか. 指定できる +# 値は: +# 0 - text/html パートを完全に取り除き, メッセージに削除した旨の注意書 +# きを残す. 一番外側のパートが text/html だったら, メッセージ全体 +# を破棄する. +# 1 - 含まれている text/html パートを削除し, HTMLエスケープしたデータ +# の添付として別に見られるようにする. 一番外側の text/html パート +# は単にHTMLエスケープするだけ. +# 2 - インラインのまま残すが, HTMLエスケープする. +# 3 - text/html を添付とみなして削除するが, HTMLエスケープしない. +# 注意: これはとても危険. これは本質的には, だれでもあなたのサイト +# に, 邪悪なJavaScript とか, Web バグとか, その他なにかいやらしい +# ものを含んだ HTML メールを送れることになるし, 保存書庫を見る人に +# も影響がある, ということだから. リストへの投稿に対して強力なモデ +# レーションをかけているようなときだけ, このオプションを考えること. +# +# 注意: 現在の保存書庫作成のコードによれば, text/html のパートをインラ +# インにしておいてエスケープしないようにするのは不可能. 場合によっては +# 不便なこともあるかもね. +# +# 値は文字列でもよい. その場合, HTML ページを通すフィルタコマンドの名 +# 前になる. 結果の出力は添付に入るか, 一番外側のパートが text/html の +# ときはメッセージ全体になる. 文字列の形式には "%(filename)s" を含めら +# れ, これはプログラムが処理する一時ファイルの名前になる. 処理されたメッ +# セージは標準出力に書き出さなければいけない. HTML からプレインテキス +# トへの変換プログラムを指定したければ, ここを +# HTML_TO_PLAIN_TEXT_COMMAND に設定する. [>=2.1] +ARCHIVE_HTML_SANITIZER = 1 + +# ダウンロードできる保存書庫の .txt ファイルを gzip 圧縮するなら Yes +# に設定する. これは*極めて*不十分なものであることに注意. 代わりに, メッ +# セージをただ .txt ファイルにまとめておいて, 毎晩 cron ジョブを走らせ +# てtxt.gz ファイルをつくることもできる. 詳細は cron/nightly_gzip 参照. +GZIP_ARCHIVE_TXT_FILES = No + +# ここで保存書庫について既定の「日付訂正」方針を設定する. メッセージが +# 保存書庫に入るときに Pipermail をつかっていても, 外部の保存書庫作成 +# プログラムをつかっていても, Mailman は Date: ヘッダを, そのヘッダの +# もとの内容ではなく, メッセージが届いた日付に修正できる. これは, とん +# でもない日付のメッセージが届いてしまったような場合に有用. +# ここを 0 に設定すると, 日付はもとのメッセージのとおりにする. 1 にす +# ると, かならず日付を訂正する. 2 に設定すると, 「賢い書き換え」が働 +# く; 日付がARCHIVER_ALLOWABLE_SANE_DATE_SKEW より外れていると (進 +# んでいても遅れていても), かわりに届いた日付で置き換える. [>=2.1] +ARCHIVER_CLOBBER_DATE_POLICY = 2 +ARCHIVER_ALLOWABLE_SANE_DATE_SKEW = days(15) + +# Pipermail の保存書庫は, 投稿者の電子メールアドレスをそのまま記録して +# いる. これは, スパム発信用アドレス収集者にとっては金鉱のようなもの +# だ, と考えるひともいるだろう. ここを Yes に設定すると, 電子メールア +# ドレスを適度にぼやかすことができる. が, これは保存書庫の中に現れる +# mailto: URL も壊してしまうことに注意. +ARCHIVER_OBSCURES_EMAILADDRS = Yes + +# Pipermail は, メッセージボディは US-ASCII テキストを含むと仮定する. +# 保存書庫のための既定のキャラクタセットに使う他のキャラクタセットを定 +# 義するならここのオプションを変える. 「キャラクタセット」という用語は +# MIME での意味で, オクテットの列を文字の列に変換する方法のことを指す. +# 既定のキャラクタセットを変えたら, 下の VERBATIM_ENCODING にそれを追 +# 加したほうがいいかも. +DEFAULT_CHARSET = None + +# 多くのキャラクタセットの符号化では, クォートしないといけない特殊な +# HTML実体定義文字がある. そうしないと, Pipermail の保存書庫が正しく表 +# 示できない. ところが, キャラクタセットによっては, ブラウザで正しく表 +# 示するにはこういった文字をクォートしてはいけないものがある. +# 主な問題は, マルチバイトの符号化でオクテット 0x26 が必ずしも & 文字 +# を表さないものがある, というやつだ. ここの変数は, そういうキャラクタ +# セットで保存書庫で HTML クォートしないもののリストを入れる. +# [訳注] この変数は既定値として iso-2022-jp が定義してあるが, 上の説明 +# のような問題が起こるキャラクタセット --- Mailman では現在, 日本 +# 語の iso-2022-jp のみ --- では, 保存書庫は EUC などの符号化法を使 +# うことにすればいいので, この変数が設定してあってもしてなくても, あま +# り意味がない. +VERBATIM_ENCODING = ['iso-2022-jp'] + +# 保存書庫が公開のとき, Mailman が生の Unix mbox ファイルも公開にして +# しまうか. [>=2.1.4] +PUBLIC_MBOX = No + + + +##### +# 配送の既定値 +##### + +# [訳注] +# MTA と Mailman を統合するための設定については, 『GNU Mailman - +# インストールマニュアル』 (日訳は http://mm.tkikuchi.net/mailman-install/ +# にある) の「メールサーバの設定」の章も参照. + +# 出ていくメールの最終的な配送モジュール. このハンドラは, リストへ, あ +# るいは個々のユーザへの SMTP サーバを通じてのメッセージ配送に使う. こ +# の値は Mailman.Handlers パッケージの中のモジュールの名前の文字列でな +# いといけない. +# +# 警告: Sendmail モジュールはセキュリティホールがあるので避けること. +# というか, これを使おうというのならその前に, +# Mailman/Handlers/Sendmail.py ファイルを読まなければいけない. +# +#DELIVERY_MODULE = 'Sendmail' +DELIVERY_MODULE = 'SMTPDirect' + +# MTA は, Mailman/MTA にあるモジュールの名前でなければならない. これは +# リストの作成と削除のための MTA 独自の機能を提供する. [>=2.1; +# MTA_ALIASES_STYLE は廃止] +# Exim のようないくつかのMTA は, 自動的に新しいリストを認識するように +# 設定でき, その場合は MTA 変数は None に設定しなければならない. +# 新しいエイリアスを標準出力に出す(またはサイトリスト管理者へ電子メー +# ルで送る) ようにして /etc/aliases スタイルのファイルを手作業でいじる +# ようにするときは 'Manual' にする. +# Postfix MTA を使っているのなら 'Postfix' にする --- ただしそのときは, +# POSTFIX_STYLE_VIRTUAL_DOMAINS も見ること. +MTA = 'Manual' + +# MTA='Postfix' に設定したのなら, Postfix で仮想ドメインを使っているか +# どうか, どんなスタイルの仮想ドメインを使っているかによって, つぎの変 +# 数も設定してほしい. [>=2.1] +# Postfix で仮想ドメインを使っていないか, または Sendmail スタイルの仮 +# 想ドメイン (すべてのアドレスがすべての仮想ドメインから見える) を使っ +# ているのなら, このフラグを偽に設定する. +# Postfix スタイルの仮想ドメイン (エイリアスがそれぞれの仮想ドメインの +# 中だけに現れる) を使っているのなら, この変数を host_name の値のリス +# トに設定して, 仮想のエントリを分離する. つまり, dom1.ain, dom2.ain, +# dom3.ain を運用しているが dom2 と dom3 だけが仮想なら, この変数をリ +# スト ['dom2.ain', 'dom3.ain'] に設定する. これはメーリングリストの +# host_name 属性にマッチさせられる. 詳細は README.POSTFIX を見る[訳注: +# README.POSTFIX の内容は, 2.1.6 以降は上記『インストールマニュアル』 +# に移された]. +POSTFIX_STYLE_VIRTUAL_DOMAINS = [] + +# これらの変数は, それぞれ aliases.db および virtual-mailman.db を, +# 関連するプレインテキストファイルから再構築するのに使うプログラムを示す. +# 更新されるファイルの名前が (区切りの空白をはさんで) この文字列に付け +# 加わるので, これは os.system() に渡せるものでなければならな +# い. [>=2.1] +POSTFIX_ALIAS_CMD = '/usr/sbin/postalias' +POSTFIX_MAP_CMD = '/usr/sbin/postmap' + +# 一回の SMTP トランザクションで指定できる宛先の数の上限. +# 0 に設定すると, 一トランザクションで全ての宛先を指定する. +# DELIVERY_MODULE が SMTPDirect のときだけ使う. +SMTP_MAX_RCPTS = 500 + +# ひとつのソケットコネクションで実行する SMTP セッションの数の上限. +# MTA によっては制限がある. 0 に設定すると, 好きなだけたくさん実行する +# (つまり MTA に制限がないとき). 0 より大きいなんらかの数に設定すると, +# Mailman はセッションがこの数に達したら SMTP コネクションを閉じてから +# 開き直す. [>=2.1] +SMTP_MAX_SESSIONS_PER_CONNECTION = 0 + +# SMTP 配送で同時に使うサブスレッドの最大数. 宛先が SMTP_MAX_RCPTS に +# 従ってカタマリに分けられた後, それぞれのカタマリはそういったスレッド +# によってsmtpd に渡される. Python インタプリタがスレッド対応でビルド +# されていなければ, この仕様は無効になる. MAX_DELIVERY_THREADS を 0 に +# 設定すれば, あらゆる場合にこの仕様を明示的に無効にできる. この仕様は +# DELIVERY_MODULE が SMTPDirect のときだけ対応している. +# +# 注意: これは実験的な仕様で, 限られたテストによれば, Python の大域イ +# ンタプリタロックにより, 実際には効率を落すかもしれない. 使うときは気 +# をつける. +MAX_DELIVERY_THREADS = 0 + +# DELIVERY_MODULE が 'SMTPDirect' のときの, SMTP のホストとポート. +# ホストが存在していて解決できることを確かめる (つまり, これが初期値の +# "localhost" であるなら, /etc/hosts ファイルに localhost のエントリ +# があることを確かめる, ということだ). +SMTPHOST = 'localhost' +SMTPPORT = 0 # smtplib の初期値を使う + +# コマンドラインのパイプを使って sendmail 互換のプログラムで配送すると +# きのコマンド. DELIVERY_MODULE が 'Sendmail' のとき設定. +SENDMAIL_CMD = '/usr/lib/sendmail' + +# ニューズグループへの投稿や閲覧に NNTP サーバでの認証が要るなら, これ +# らの変数を設定する. 認証が必要ないなら, 両方の変数に None を指定する. +NNTP_USERNAME = None +NNTP_PASSWORD = None + +# NNTP ゲートウェイのあるリストで一番使いたい NNTP サーバがあるなら, +# これを設定する. +DEFAULT_NNTP_HOST = '' + +# これらの変数は, NNTP サーバに受け入れられるためにヘッダを削る方法を +# 制御する. [>=2.1] INN のようないくつかのサーバは, 禁止されるヘッダや, +# 重複するヘッダのあるメッセージをリジェクトする. NNTP サーバは他の理 +# 由でもメッセージをリジェクトするかもしれないが, そういったことをプロ +# グラム的に解決できる見込みはあまりない. Mailman/Queue/NewsRunner.py +# を見ること. +# +# 最初に, これらのヘッダ (大文字小文字の違いは無視する) は, 元のメッセー +# ジから削除する. +NNTP_REMOVE_HEADERS = ['nntp-posting-host', 'nntp-posting-date', 'x-trace', + 'x-complaints-to', 'xref', 'date-received', 'posted', + 'posting-version', 'relay-version', 'received'] + +# 次に, これらのヘッダは, 元のメッセージで重複していなければ, そのまま +# 残す. 2 度めかそれ以降に現れるヘッダは 2 番目の名前のヘッダに書き換 +# える (大文字小文字の区別は保存する). +NNTP_REWRITE_DUPLICATE_HEADERS = [ + ('to', 'X-Original-To'), + ('cc', 'X-Original-Cc'), + ('content-transfer-encoding', 'X-Original-Content-Transfer-Encoding'), + ('mime-version', 'X-MIME-Version'), + ] + +# リスト全員に送るようなすべての「普通の」メッセージは, このハンドラモ +# ジュールのパイプラインを通る. それぞれのリスト自身では, `pipeline' +# 属性を定義すればグローバルなパイプラインを上書きできる. [>=2.1] [訳 +# 注: 2.1.6 から Scrubber モジュールが追加された.] +GLOBAL_PIPELINE = [ + # まずは, すべての配送過程で共通の処理をするモジュール. + 'SpamDetect', + 'Approve', + 'Replybot', + 'Moderate', + 'Hold', + 'MimeDel', + 'Scrubber', + 'Emergency', + 'Tagger', + 'CalcRecips', + 'AvoidDuplicates', + 'Cleanse', + 'CookHeaders', + # それから, メッセージをまとめ読み用の mbox ファイル, 保存書庫, + # ニューズのキューに送る. それぞれの runner が, それぞれの配送過程 + # に応じたその後のメッセージの処理をする. + 'ToDigest', + 'ToArchive', + 'ToUsenet', + # それから, 会員向け配送 (送出) 特有の若干の追加処理をして, + # 最後に, メッセージを送出キューへ放つ. + 'AfterDelivery', + 'Acknowledge', + 'ToOutgoing', + ] + +# これは, -owner アドレスに送られてきたメッセージが通るパイプライン. +OWNER_PIPELINE = [ + 'SpamDetect', + 'Replybot', + 'OwnerRecips', + 'ToOutgoing', + ] + + +# これは SMTPDirect 配送モジュール (上の DELIVERY_MODULE を参照) のた +# めの書式化文字列を定義する [>=2.1]. 有効な %()s 文字列置換にはつぎの +# ものがある: +# +# time -- メッセージを Mailman から smtpd に完全に渡すのに要した +# 浮動小数点数の秒数. +# +# size -- メッセージの全サイズのバイト数. +# +# #recips -- このメッセージの実際の宛先数. +# +# #refused -- SMTP で拒否された宛先数 (SMTP_LOG_REFUSED の中でだけ使う). +# +# listname -- この投稿のメーリングリストの `内部的な' 名前. +# +# msg_<ヘッダ> -- 配送されたメッセージの与えられたヘッダの値. +# メッセージにそのようなヘッダがなければ, "n/a" を使う. ただし, +# メッセージにそのようなヘッダが複数あれば, そのうちのどれをつかうかは +# 未定義であることに注意. +# +# allmsg_<ヘッダ> - 上の msg_<ヘッダ> とおなじだが, そのようなヘッダ +# がメッセージに複数あれば, カンマと空白で区切ってすべて出力する. +# +# sender -- メッセージの "送信者". これは下の USE_ENVELOPE_SENDER +# 変数での指定によって From: かエンヴェロープ送信者かになる. +# +# 各項目は 2 要素のタプルの形式で, 最初の要素がメッセージを出力する +# logs/ の中のファイルの名前で, 次が Python の %スタイルの文字列置き換 +# えである書式文字列になっている. ファイル名は任意; qfiles/<名前> は, +# もしなければ自動的に作成される. + +# 配送が成功かそうでないかにかかわらず, メッセージ配送ごとに出力するメッ +# セージの書式. このログメッセージの出力を無効にするには None を設定す +# る. [訳注: 2.1.6 から, リスト名 %(listname)s を含めることができる +# ようになった.] +SMTP_LOG_EVERY_MESSAGE = ( + 'smtp', + '%(msg_message-id)s smtp to %(listname)s for %(#recips)d recips, completed in %(time).3f seconds') + +# これは, SMTP が即座には失敗しないときだけ出力する. +# SMTP_LOG_REFUSED とは相互に排他的. +SMTP_LOG_SUCCESS = ( + 'post', + 'post to %(listname)s from %(sender)s, size=%(size)d, message-id=%(msg_message-id)s, success') + +# これは, いずれかのアドレスで即座に SMTP の失敗が発生したときだけ出力する. +# SMTP_LOG_SUCCESS とは相互に排他的. +SMTP_LOG_REFUSED = ( + 'post', + 'post to %(listname)s from %(sender)s, size=%(size)d, message-id=%(msg_message-id)s, %(#refused)d failures') + +# これはそれぞれの特定の宛先に関する失敗でログを残す. 追加の %()s キー: +# +# recipient -- 失敗した宛先のアドレス +# failcode -- SMTP 失敗コード +# failmsg -- 実際の SMTP メッセージ (あれば) +SMTP_LOG_EACH_FAILURE = ( + 'smtp-failure', + 'delivery to %(recipient)s failed with code %(failcode)d: %(failmsg)s') + +# これらの変数は, より良い配送エラー検知のための VERP 風配送の書式と頻 +# 度を制御する [>=2.1]. VERP とは, 以下で定義されている可変エンヴェロー +# プ返送経路情報のこと: +# +# http://cr.yp.to/proto/verp.txt +# +# これは, 宛先のアドレスを我々 (Mailman) がエンヴェロープ送信者アドレ +# ス (つまり SMTP の `MAIL FROM:' アドレス) から知るための符号化を伴う. +# そのため, 宛先でどんな種類の転送がされても, 配送エラーがあったときは, +# 我々は曖昧さのない配送エラーアドレスの知らせを受け取れる. +# +# しかしながら, これは技術的には VERP「風」でしかない, なぜならエンヴェ +# ロープ送信者のエンコードを Mailman でやっていて, MTA でやっているの +# ではないから. MTA との連係が要るので, MTA が拡張アドレスを理解できる +# ように設定できるかどうか, 確かめておくこと. +# +# 最初の変数は, VERP エンヴェロープのエンコードのしかたを表す. これは +# 次の3 つの文字列置き換えを含む: +# +# %(bounces)s -- リスト-bounces メールボックス名をここにセットする +# %(mailbox)s -- 宛先のメールボックス名をここにセットする +# %(host)s -- 宛先のホスト名をここにセットする +# +# ここでの例は, 下の初期設定を使う. +# +# FQDN でのリストアドレスは: mylist@dom.ain +# 宛先は: aperson@a.nother.dom +# +# エンヴェロープ送信者は mylist-bounces+aperson=a.nother.dom@dom.ain +# となる +# +# MTA が, /必ず/ こういったアドレスを mylist-bounces に配送するように +# 設定するよう注意! +VERP_FORMAT = '%(bounces)s+%(mailbox)s=%(host)s' + +# 次の変数は, こういったアドレスを曖昧さなくデコードするための正規表現 +# を表す. 配送エラーを発生させた MTA は, このアドレスを配送エラーメッ +# セージのTo: ヘッダに入れる. これを正しく取得することは重要 --- そし +# て巧妙だ. 使っている Python の正規表現をよく調べること. これはちょ +# うど 3 つの名前つきグループを定義しなければならない: bounces, +# mailbox, host で, 定義は上の変数と同じ. これは大文字小文字の違いを無 +# 視してコンパイルされる. +VERP_REGEXP = r'^(?P<bounces>[^+]+?)\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$' + +# メッセージを認識するための VERP 書式 [>=2.1.5] +VERP_PROBE_FORMAT = '%(bounces)s+%(token)s' +VERP_PROBE_REGEXP = r'^(?P<bounces>[^+]+?)\+(?P<token>[^@]+)@.*$' +# ここを Yes にすると, 配送エラーでの配送停止で VERP 検出を有効にする +# [>=2.1.6] +VERP_PROBES = No + +# VERP を使うのにもっともよい機会は, パスワード通知のときだ. それはす +# でに宛先ごとに個別化されている. ここで Yes を設定すると, パスワード +# 通知で必ず VERP を使うようになる. +VERP_PASSWORD_REMINDERS = No + +# ほかによい機会としては, まとめ読みでない通常の配送が個別化されている +# ときがある. ここでも, 個別の宛先ごとにアドレスを生成することが負荷増 +# 大になるかもしれない. ここで Yes を設定すると, まとめ読みでない通常 +# の配送が個別化されていると VERP を使う (まとめ読みの配送の個別化は未 +# 対応). +VERP_PERSONALIZED_DELIVERIES = No + +# そして最後に, 通常の個別化されていない配送も VERP にできる. しかしな +# がら, これは著しい負荷増大があるかもしれないので, 通常配送での VERP +# の頻度を決められるようにしてある. これはメッセージの数で, VERP 宛先 +# アドレスを使う間隔を決める. 同じ変数が, 通常とまとめ読みの両方の配送 +# を制御する. 0 に設定すると, まったく VERP にしない. 1 に設定すると, +# すべての配送でVERP にする. 1 より大きい数にすると, 時々 VERP するだ +# けにする. +VERP_DELIVERY_INTERVAL = 0 + +# より良い確認メッセージのために, VERP 風の書式を使う. これは確認文字 +# 列を返信用アドレスにエンコードしてある. これでメッセージの Subject: +# をよりユーザに親切なものにできるが, MTA との連係が要る. 書式は上の +# VERP_FORMAT と同様だが, つぎの置き換えを使う: +# +# %(addr)s -- リスト-confirm メールボックス名がここに入る +# %(cookie)s -- 確認文字列がここに入る +VERP_CONFIRM_FORMAT = '%(addr)s+%(cookie)s' + +# これは VERP_REGEXP と同様, ただし VERP_CONFIRM_FORMAT での分割用. +VERP_CONFIRM_REGEXP = r'^(?P<addr>[^+]+?)\+(?P<cookie>[^@]+)@.*$' + +# これを Yes に設定すると, VERP 風 (よりユーザに親切) な確認メッセージを使う. +VERP_CONFIRMATIONS = No + +# あるアドレスに送られる, -request アドレス宛てメッセージや投稿保留メッ +# セージによる自動応答の数の最大数. この制限は, Mailman と誤設定のある +# 電子メールロボットとの間での応答ループを防ぐ. Mailman はもともと, +# "Precendence: bulk|list|junk" ヘッダのついたメッセージには自動応答を +# しないようになっている. ここの設定は, いざというときの安全のための値 +# なので, それなりに高く設定する. 0 に設定すると制限なし (たぶんデバッ +# グのときだけ便利). +MAX_AUTORESPONSES_PER_DAY = 10 + + + +##### +# Qrunner の既定値 [>=2.1] +##### + +# qrunner のマスタ監視プロセスが, どんなキューを起動するか. これは, +# qrunner クラスの名前 (これは Mailman.Queue パッケージの中で同じ名前 +# のモジュールとして存在していなければならない) と, それぞれのqrunner +# のために fork する並行プロセスの数との, 2 要素のタプルのリストになる. +# 1 個より多くのプロセスを使うと, それぞれがハッシュ空間の互いに等しい +# 部分を取る. + +# BAW: そのうち重み付けのあるハッシュ空間に対応するかも +# BAW: 強制ではないが, スライスの数は 2 の累乗であるべき + +QRUNNERS = [ + ('ArchRunner', 1), # 保存書庫作成に行くメッセージ + ('BounceRunner', 1), # qfile/bounces ディレクトリの処理のため + ('CommandRunner', 1), # 外界から来るコマンドと配送エラー + ('IncomingRunner', 1), # 外界から来る投稿 + ('NewsRunner', 1), # nntpd へ送り出すメッセージ + ('OutgoingRunner', 1), # smtpd へ送り出すメッセージ + ('VirginRunner', 1), # 内部的に作り出した (できたての) メッセージ + ('RetryRunner', 1), # 一時的に失敗した配送の再試行 [>=2.1.4] + ] + +# ここを Yes に設定すると, `Maildir` 配送オプションを使う. これを変え +# たら, リスト自動検出を使わない MTA のためには bin/genaliases を再実 +# 行する必要がある. +# +# 警告: Maildir 配送を使いたいなら, Mailman の qrunner を /必ず/ root +# で開始しなければならない. そうしないとパーミッションの問題が出る. +# +# 注意: Maildir 配送は Mailman 2.1 では実験的. +USE_MAILDIR = No +# 注意: USE_MAILDIR = Yes に設定するのなら, mm_cfg.py ファイルに次の行 +# を加える (もちろん, コメント記号は外す!) +# QRUNNERS.append(('MaildirRunner', 1)) + +# qrunner のスライスですべてのファイルを処理した後, またキューのディレ +# クトリに新しいファイルがあるか調べるまでに, どのくらいの間 runner を +# sleep させるか. これは秒未満にもできる. また, ゼロにすればすぐ調べる +# (essentially busy-loop as fast as possible) ようになる. +QRUNNER_SLEEP_TIME = seconds(1) + +# (email パッケージで) 解析できないようなメッセージを受け取ったときに, +# それをどうするか. 解析できないメッセージになる原因としてもっともよく +# あるのは, MIME カプセル化が壊れているもので, そうなる原因としてもっ +# ともよくあるのは, それが Nimda のようなコンピュータウィルスによるも +# のであるときだ. この変数を No に設定すると, そういったメッセージは捨 +# てる. Yes にすると, qfiles/bad サブディレクトリに保管する. +QRUNNER_SAVE_BAD_MESSAGES = Yes + +# このフラグは, Mailman がデータファイルに書き込んで flush した後でそ +# のデータファイルを fsync() するようにする. これはディスクへのデータ +# の書き込みを確実にし, データを失うことを防ぐが, 性能を犠牲にする. +# このフラグは, メッセージのピクルと MailList の config.pck ファイル +# の両方に影響することに注意. [>=2.1.4] +SYNC_AFTER_WRITE = No + + + +##### +# 一般的な既定値 +##### + +# このサーバの標準言語. リストの文脈やユーザの文脈がわからないときはい +# つでも, 代わりにこの言語を使う. 設定できる値は下の LC_DESCRIPTIONS +# を見る. [>=2.1] +DEFAULT_SERVER_LANGUAGE = 'en' + +# 会員のみがメーリングリストに投稿できるようにするとき, メッセージの送 +# 信者をどのように決めるか. この変数を Yes に設定すると, まずメッセー +# ジのエンヴェロープ送信者を使い, エンヴェロープ送信者がなければ代わり +# に送信者を使う. これを No に設定すると, いつも送信者を使う. +# +# エンヴェロープ送信者は SMTP 配送が設定するから, 送信者よりはごまかす +# のが難しい. 送信者は From: ヘッダに入れるもので, エンドユーザが簡単 +# にごまかせる. しかしながら, エンヴェロープ送信者は, ときには正しく +# 設定されていないことがあって, リスト会員から送られてきているのに投稿 +# が承認のために保留になってしまうことがある. このような問題が起こるの +# なら, この変数は No に設定するが, ごまかしメッセージを通してしまうこ +# とがあるのを理解しておくこと. +USE_ENVELOPE_SENDER = No + +# 投稿の目的で会員かどうか調べるには, 普通はいくつかのヘッダのうちでど +# れかの値がリスト会員と一致するかを調べる. +# ヘッダはこの変数に挙げた順に調べる. None という値は From_ (エンヴェ +# ロープ送信者) を使うという意味. フィールド名は大文字小文字を区別しな +# い. [>=2.1] +SENDER_HEADERS = ('from', None, 'reply-to', 'sender') + +# admin CGI で, 退会やオプション変更のために一度に表示する会員の数. +DEFAULT_ADMIN_MEMBER_CHUNKSIZE = 30 + +# admindb の Web ページで保留されている投稿の何バイトを表示するか. サ +# イズにかかわらず全メッセージを指定するには負の数を使う (ただしそのペー +# ジを表示するのに時間がかかるかも). +ADMINDB_PAGE_TEXT_LIMIT = 4096 + +# この変数を Yes に設定すると, リスト管理者は自分のメーリングリストを +# 削除できるようになる. リスト管理者にそんな力を与えたくない場合は, か +# わりにこの変数を No に設定すると, リスト削除はサイト管理者がコマンド +# 行スクリプトbin/rmlist でしなければならなくなる. [>=2.1] +OWNERS_CAN_DELETE_THEIR_OWN_LISTS = No + +# この変数を Yes に設定すると, リスト管理者が自分のメーリングリストに +# 「個別化」フラグを設定できるようになる. このフラグを有効にすると, +# Mailman は, MTA への配送をまとめて行うかわりにユーザごとに別々の電子 +# メールメッセージを送るようになる. このことにより, 会員ごとにより個別 +# 化したメッセージが出せるが, システムの効率に重大な影響を与えるかもし +# れない. [>=2.1] +OWNERS_CAN_ENABLE_PERSONALIZATION = No + +# 保留するメッセージを Python のピクルで保存するか, プレインテキストで +# 保存するか. 前者は毎回解析/生成を行わなくてよいので効率がいいが, 後 +# 者はもしも保留メッセージをディスク上で変更したいのならよいかもしれな +# い. [>=2.1] +HOLD_MESSAGES_AS_PICKLES = Yes + +# [訳注] METADATA_FORMAT [>=2.1 && <=2.1.4] は廃止された。 + +# この変数は, admin CGI ページに現れるリストごとの設定分類の順序を制御 +# する. [>=2.1] +ADMIN_CATEGORIES = [ + # 1 列め + 'general', 'passwords', 'language', 'members', 'nondigest', 'digest', + # 2 列め + 'privacy', 'bounce', 'archive', 'gateway', 'autoreply', + 'contentfilter', 'topics', + ] + +# 下の「ユーザオプションのビットフィールド」を参照; ここはそれらのオプ +# ションの合計にする. リストのすべての新規会員はそれらのオプションを設 +# 定される. 我々は, 既定値ではみんな投稿の写しを受け取りたがらないと仮 +# 定している. しかし, 会員の投稿制限フラグの最初の値はリストの設定変数 +# default_member_moderation で制御されることに注意. [>=2.1] +DEFAULT_NEW_MEMBER_OPTIONS = 256 + +# Mailman が自分でパスワードを生成するとき (ユーザが入会申請のときに自 +# 分でパスワードを入力しなかった場合や, リスト作成の際に管理者パスワー +# ドの自動生成を選択したときにそうなる) に使うパスワードの種類の指定. +# [>=2.1.6] +# +# この値を Yes にすると, Mailman 古来の, ユーザに(より)親切なパスワー +# ドにする. 唱えやすそうなパスワードができるので, 覚えるのが楽. +# この値を No にすると, 暗号論的により強度の高い (しかし, より覚えにく +# い) パスワードを使うようにする -- オペレーティング システムと Python +# が必要な仕様 (特に, /dev/urandom が利用できることが必要) に対応して +# いるのなら. +USER_FRIENDLY_PASSWORDS = Yes +# この値で, 会員とリスト管理者のパスワードの既定の [訳注: つまり, パス +# ワードが自動生成されるときの] 長さを指定する. [>=2.1.6; これらの値は, +# 以前はハードコードされていた] +MEMBER_PASSWORD_LENGTH = 8 +ADMIN_PASSWORD_LENGTH = 10 + + + +##### +# リストの既定値. 注意: これらの変数を変えても, すでにあるリストの設定は +# *変わらない*. ここでは, 今後作成する新しいリストの既定値を定義するだけ. +##### + +# リストは, 既定で公表するかどうか. 明示される宛先で許される数の最大は +# 既定でいくつか. 既定で許されるメッセージサイズの最大はいくつか. +DEFAULT_LIST_ADVERTISED = Yes +DEFAULT_MAX_NUM_RECIPIENTS = 10 +DEFAULT_MAX_MESSAGE_SIZE = 40 # キロバイト + +# これらの書式文字列は, メーリングリストのインスタンスの辞書を使って展 +# 開される. +# [訳注] +# 2.1.6 以降, DEFAULT_SUBJECT_PREFIX に %d を含めると通し番号が +# 入るようになった. %04d といった書式も使える. +# mm_cfg.py で設定するときは %%d のように書かなければならないことに +# 注意. +DEFAULT_SUBJECT_PREFIX = "[%(real_name)s] " +# DEFAULT_SUBJECT_PREFIX = "[%(real_name)s %%d]" # 通し番号をつける場合 +DEFAULT_MSG_HEADER = "" +DEFAULT_MSG_FOOTER = """_______________________________________________ +%(real_name)s mailing list +%(real_name)s@%(host_name)s +%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s +""" + +# 「Re:」のつくメッセージで, 件名の前置きをどこにつけるか [>=2.1.6]: +# +# 旧スタイル: Re: [前置き] テスト +# 新スタイル: [前置き 123] Re: テスト ... (通し番号はオプション) +# +# 後方互換性のために, 旧スタイルを既定値とする. ただし, リスト管理者が +# 前置きに %d (通し番号) を入れたとき [訳注: 上記参照] は, 強制的に新 +# スタイルにする. サイト管理者が以前に新スタイル化パッチ (SourceForge +# のパッチ置場にある) を当てていたのなら, この値を mm_cfg.py で No +# に設定するとよいかもしれない. +OLD_STYLE_PREFIXING = Yes + +# 通常配送で添付削除する [>=2.1.6] +DEFAULT_SCRUB_NONDIGEST = False + +# 電子メールコマンド処理では, 指示された行数より後の電子メールコマンド +# を無視する. +DEFAULT_MAIL_COMMANDS_MAX_LINES = 25 + +# 管理要求を, 毎日の保留要求通知のほかに, 即座にメールで管理者に知らせ +# るか. +DEFAULT_ADMIN_IMMED_NOTIFY = Yes + +# 管理者に入会/退会を知らせるか. +DEFAULT_ADMIN_NOTIFY_MCHANGES = No + +# この日数の後, 保留されているメッセージを破棄する [>=2.1.6] [訳注: 0 にすると破棄しない] +DEFAULT_MAX_DAYS_TO_HOLD = 0 + +# リスト会員の投稿は, 既定で司会つきにするか. [>=2.1; +# DEFAULT_MODERATED は廃止] +DEFAULT_DEFAULT_MEMBER_MODERATION = No + +# 自動的に破棄した非会員の投稿を司会者に転送もするか. [>=2.1] +DEFAULT_FORWARD_AUTO_DISCARDS = Yes + +# 特定の非会員の動作に一致しなかった非会員の投稿をどうするか. [>=2.1] +# 0 = 承認 +# 1 = 保留 +# 2 = 拒否 +# 3 = 破棄 +DEFAULT_GENERIC_NONMEMBER_ACTION = 1 + +# 'To:', 'Cc:', 'Resent-To:' のどのフィールドにもリスト名がはいってい +# なければエラーとするか. これはスパム対策になる +DEFAULT_REQUIRE_EXPLICIT_DESTINATION = Yes + +# リスト名のほかに承認できる名前. +DEFAULT_ACCEPTABLE_ALIASES =""" +""" +# ほかのメーリングリストだけを会員とするメーリングリスト (親子リスト) +# にするか: +DEFAULT_UMBRELLA_LIST = No + +# 親子リストの場合, 管理通知 (入会の確認やパスワード通知) を送るアドレ +# スのメールボックス部につける接尾語: +DEFAULT_UMBRELLA_MEMBER_ADMIN_SUFFIX = "-owner" + +# この変数は, 毎月のパスワード通知を送るかどうかを制御する. +DEFAULT_SEND_REMINDERS = Yes + +# 新会員に歓迎メッセージを送るか. +DEFAULT_SEND_WELCOME_MSG = Yes + +# 退会した会員にお別れメッセージを送るか. [>=2.1] +DEFAULT_SEND_GOODBYE_MSG = Yes + +# 送信者情報を消して, リスト-admin アドレスから送っているように見せる +DEFAULT_ANONYMOUS_LIST = No + +# {ヘッダ名: 正規表現} スパムフィルタ - 例をいくつか書いておく. +DEFAULT_BOUNCE_MATCHING_HEADERS = """ +# '#' で*始まる*行は注釈. +to: friend@public.com +message-id: relay.comanche.denmark.eu +from: list@listme.com +from: .*@uplinkpro.com +""" + +# Mailman は, 通過するメッセージの Reply-To: ヘッダを「書き換える」よ +# うに設定できる. 状況によっては, Reply-To: の書き換えをしないもっとも +# な理由がある. 別の状況では, この仕様が本当に必要になる. Web インタ +# フェースの reply_goes_to_list のヘルプで, この問題についての議論へ +# のリンクを見てほしい. +# 0 - Reply-To: を書き換えない +# 1 - Reply-To: をリストに向ける +# 2 - Reply-To: を特定のアドレス (reply_to_address) に設定する +DEFAULT_REPLY_GOES_TO_LIST = 0 + +# Mailman は, Reply-To: ヘッダがあればすべて取ってしまうようにも, 単に +# 存在する Reply-To: に上記の設定に基づいて追加するようにも設定できる. +# [>=2.1] +DEFAULT_FIRST_STRIP_REPLY_TO = No + +# 入会の方針 +# 0 - 開放リスト (ALLOW_OPEN_SUBSCRIBE が 1 に設定してあるときだけ) ** +# 1 - 入会に確認が要る +# 2 - 入会に管理者の承認が要る +# 3 - 確認と管理者の承認の両方が要る +# +# ** 入会を開放 (次の変数) にしたくないなら, 0 にはしないようにしてほしい. +DEFAULT_SUBSCRIBE_POLICY = 1 + +# 当サイトでは, まったくチェックなしに入会できるようにするか. +ALLOW_OPEN_SUBSCRIBE = No + +# 退会の既定の方針. 0 (承認なしの退会) を強くお勧めする! [>=2.1] +# 0 - 承認なしで退会できる +# 1 - 退会に承認が要る +DEFAULT_UNSUBSCRIBE_POLICY = 0 + +# 会員名簿の非公開 == 0: だれでも見れる, 1: 会員のみ, 2: 管理者のみ. +# [訳注: 2.1 以降は既定値が 0 から 1 に変更された.] +DEFAULT_PRIVATE_ROSTER = 1 + +# 会員を見せるときに, 電子メールアドレスだとわからないようにして, Web +# スパイダがスパムに利用するためにアドレスを収集できなくするか. +DEFAULT_OBSCURE_ADDRESSES = Yes + +# RFC 2369 では, メーリングリスト会員を通じて送られるメッセージすべて +# に付加する List-* ヘッダを定義している. これはエンドユーザにはとても +# 役に立つので, いつも付加したい. しかしながら, すべての MUA がこのヘッ +# ダに適合しているわけではなく, あるリストでリスト会員にそういうユーザ +# がおおぜいいると, その人たちがこのヘッダを隠してほしいと騒ぎ立てるか +# もしれない. +# この変数を No に設定することで, リスト管理者はこのヘッダを隠すオプショ +# ンを使えなくなる (それでも, 一部のヘッダを隠すことはできる. つまり, +# お知らせ専用リストや保存書庫のないリストにすると, 関係するヘッダは隠 +# れる). [>=2.1] +ALLOW_RFC2369_OVERRIDES = Yes + +# メーリングリストでの内容フィルタの既定値. DEFAULT_FILTER_CONTENT を +# 真に設定すると, 内容フィルタが有効になる. [>=2.1] +DEFAULT_FILTER_CONTENT = No + +# DEFAULT_FILTER_MIME_TYPES は, 削除する MIME 型のリスト. これは +# "maintype/subtype" あるいは単に "maintype" の形式の文字列のリストに +# する. たとえば, "text/html" はすべての HTML の添付を取り去るし, +# "image" はすべてのイメージ型の添付をサブタイプ (jpeg, gif, など) に +# 関わらず取り去る. [>=2.1] +DEFAULT_FILTER_MIME_TYPES = [] + +# DEFAULT_PASS_MIME_TYPES は, 通す MIME 型のリスト. +# 形式は DEFAULT_FILTER_MIME_TYPES とおなじ. [>=2.1] +DEFAULT_PASS_MIME_TYPES = ['multipart/mixed', + 'multipart/alternative', + 'text/plain'] + +# DEFAULT_FILTER_FILENAME_EXTENSIONS は, 削除するファイル名の拡張子の +# リスト. これは役に立つ. なぜなら, いろんなウィルスが, content-type +# ヘッダを偽装して安全なファイルに見せかけながら実行可能な拡張子をつけ +# るようにしていて, 被害者がそれを「開く」と実行されてしまうことをねらっ +# ているので. [>=2.1.6] +DEFAULT_FILTER_FILENAME_EXTENSIONS = [ + 'exe', 'bat', 'cmd', 'com', 'pif', 'scr', 'vbs', 'cpl' + ] + +# DEFAULT_PASS_FILENAME_EXTENSIONS は, 通すファイル名の拡張子のリスト. +# 形式は DEFAULT_FILTER_FILENAME_EXTENSIONS とおなじ. [>=2.1.6] +DEFAULT_PASS_FILENAME_EXTENSIONS = [] + +# multipart/alternative を, そのうちの最初のパートで置き換える. [>= 2.1.7] +DEFAULT_COLLAPSE_ALTERNATIVES = Yes + +# 内容フィルタを通したあとで, text/html を text/plain に変換するかどうか. +# 変換は HTML_TO_PLAIN_TEXT_COMMAND を使って行う. [>=2.1] +DEFAULT_CONVERT_HTML_TO_PLAINTEXT = Yes + +# フィルタした結果内容がなくなってしまったメッセージに対してとる既定の動作. +# [>=2.1] +# 0 = 破棄, 1 = 拒否, 2 = 転送, 3 = 保留 +DEFAULT_FILTER_ACTION = 0 + +# リスト管理者が内容フィルタしたメッセージをディスクの特別なキューに保 +# 管できるようにするか. [>=2.1] +OWNERS_CAN_PRESERVE_FILTERED_MESSAGES = Yes + +# リストに送られるメッセージの管理コマンドチェックをするか. +DEFAULT_ADMINISTRIVIA = Yes + + + +##### +# まとめ読みの既定値. リストの既定値と同じ注意がここにもあてはまる. +##### + +# リストをまとめ読みなしにできるか. +DEFAULT_NONDIGESTABLE = Yes + +# リストをまとめ読み付きにできるか. +DEFAULT_DIGESTABLE = Yes +DEFAULT_DIGEST_HEADER = "" +DEFAULT_DIGEST_FOOTER = DEFAULT_MSG_FOOTER + +DEFAULT_DIGEST_IS_DEFAULT = No +DEFAULT_MIME_IS_DEFAULT_DIGEST = No +DEFAULT_DIGEST_SIZE_THRESHHOLD = 30 # キロバイト +DEFAULT_DIGEST_SEND_PERIODIC = Yes + +# RFC 1153 (平文) と MIME の両方のまとめ読みで保持するヘッダ. [>=2.1.1] +# RFC 1153 はまた, 以下のヘッダをこのとおりの順序で指定しているので, +# 順序はだいじ. +MIME_DIGEST_KEEP_HEADERS = [ + 'Date', 'From', 'To', 'Cc', 'Subject', 'Message-ID', 'Keywords', + # つぎのヘッダも保持したほうがいいとおもう + 'In-Reply-To', 'References', 'Content-Type', 'MIME-Version', + 'Content-Transfer-Encoding', 'Precedence', 'Reply-To', + # Mailman 2.0 [とそれ以降] ではつぎのヘッダを付加する + 'Message', + ] + +PLAIN_DIGEST_KEEP_HEADERS = [ + 'Message', 'Date', 'From', + 'Subject', 'To', 'Cc', + 'Message-ID', 'Keywords', + 'Content-Type', + ] + + + +##### +# 配送エラー処理の既定値. リストの既定値と同じ注意がここにもあてはまる. +##### + +# 全部配送エラー処理をするか. +DEFAULT_BOUNCE_PROCESSING = Yes + +# 配送エラーを検出してキューに入れてあるものを, bounce runner が +# どのくらいの頻度で処理するか. [>=2.1.5] +REGISTER_BOUNCES_EVERY = minutes(15) + +# 配送エラー処理はつぎのように働く: ある会員から配送エラーが届くと, そ +# の会員の「配送エラー情報」を探す. 配送エラー情報がなければ, その会員 +# からの配送エラーは初めてだ, ということになる. この場合, その日の日付 +# を記録し, 配送エラー得点を初期化する (初期値については下記を見る). +# +# その会員の配送エラー情報がすでにあるのなら, 以前に配送エラーが届いた +# 日付を調べる. この日付がその日とくらべて「配送エラー忘却期間」よりも +# へだたっているのなら, 古いデータはすべて捨てて, その会員からの初めて +# の配送エラーであるかのように, 配送エラー得点を初期化する. +# +# そうでなければ, 配送エラー得点を増やす. 配送エラーが弱か強か (つまり +# 一時的エラーか致命的エラーか) を決定できるなら, 弱な配送エラーには +# 0.5 点, 強な配送エラーには 1.0 点をつかう. 日に一件の配送エラーにだ +# け得点を付けることに注意. そして, 配送エラー得点が「最大エラー点」を +# 超えれば, その会員のアドレスへの配送を停止する. +# +# そのアドレスへの配送を停止した後に, その会員へ警告メッセージを送るこ +# ともできる. これには確認文字列や確認用の URL が書いてあって, それを +# 使って配送を再開できる. また設定した期間が経った後に, そのアドレスを +# 削除することもできる. 配送エラーのためにアドレスを削除したときは, +# その会員に最後のメッセージを送る. + +# 配送エラー得点がこの値より大きければ配送を停止する. [>=2.1] +DEFAULT_BOUNCE_SCORE_THRESHOLD = 5.0 + +# この期間よりも前の配送エラー情報は期限切れとみなし, 捨てる. [>=2.1; +# DEFAULT_MINIMUM_REMOVAL_DATE は廃止] +DEFAULT_BOUNCE_INFO_STALE_AFTER = days(7) + +# 配送停止や削除された会員に, リストから削除する前に通知を送る回数. +# 0 にすると, そのアドレスをすぐに (最後の通知を送って) 削除する. 最初 +# のものは配送停止になってから送ることに注意. [>=2.1; +# DEFAULT_MINIMUM_POST_COUNT_BEFORE_BOUNCE_ACTION は廃止] +DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS = 3 + +# 配送停止の警告を送る間隔. [>=2.1] +DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL = days(7) + +# 管理者は, -bounces (および -admin) アドレス宛てのメッセージで配送エ +# ラー検出にひっかからなかったものを受け取るか. [>=2.1] +DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER = Yes + +# 配送エラーに対する動作の通知. 最初のものは, 会員が配送エラーのために +# 配送停止になったときにリスト管理者に知らせるかどうかを指定し, 次のも +# のは会員が配送エラーのために削除されたときに管理者に知らせるかどうか +# を指定する. [>=2.1; DEFAULT_AUTOMATIC_BOUNCE_ACTION は廃止] +DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE = Yes +DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL = Yes + + + +##### +# 一般的な時間制限 +##### + +# 保留データベースから入会要求を破棄するまでの期間の既定値. +PENDING_REQUEST_LIFE = days(3) + +# 配送に失敗したメッセージの再送をどれだけの間くりかえすか. この時間が +# たった後, 失敗した配送先はキューから除かれ, その配送先はメッセージを +# 受け取ることはない. +DELIVERY_RETRY_PERIOD = days(5) + +# 一時的な配送の失敗に対して, 再送までどれだけの間待つか. [>=2.1.2 && <=2.1.3] +DELIVERY_RETRY_WAIT = hours(1) + + + +##### +# ロック管理の既定値 +##### + +# これらの変数は, ロックの獲得と保持の若干の側面を制御する. これらは +# あなたの環境にふさわしく調整しなければならない. 変数はすべて浮動小数 +# 点数の秒単位で指定する. *これらの変数は, リストのサイズ, ハードウェ +# アやネットワークやメール処理機能などの性能にあわせて調整しなければな +# らないかもしれない*. + +# これを On に設定すると, MailList オブジェクトのロックのデバッグメッ +# セージを有効にする. このメッセージは logs/locks に書き込む. ロックに +# 問題があると考えるとき, または単にロックを自分のシステムにあわせて調 +# 整したいときは, ロックのデバッグを有効にする. +LIST_LOCK_DEBUGGING = Off + +# この変数は, メーリングリストの特定の操作について, どれだけの間ロック +# を保持するかを指定する. logs/lock ファイルを監視して, ロック破損がた +# くさんみつかるなら, この値を増やさないといけないだろう. しかしながら +# これをあまりに大きく設定すると, 欠陥のあるスクリプト (または +# bin/withlist の誤った使いかた) によって, リストがロックの寿命をすぎ +# るまで利用不能になることがある. これはおそらく, このシステムで最も重 +# 要な調整用変数のひとつだ. +LIST_LOCK_LIFETIME = hours(5) + +# この変数は, 外界から来るメッセージを受け取る qrunner プロセスがリス +# トのロック獲得をどれだけの間試みるかを指定する. ロック獲得が時間切れ +# になると, メッセージは再びキューに戻されてつぎの配送を待つ. +LIST_LOCK_TIMEOUT = seconds(10) + +# これを On に設定すると, 保留要求データベースのためのロックのデバッグ +# メッセージを有効にする. このメッセージは logs/locks に書き込む. ロッ +# クに問題があると考えるとき, または単にロックを自分のシステムにあわせ +# て調整したいときは, ロックのデバッグを有効にする. [>=2.1.2] +PENDINGDB_LOCK_DEBUGGING = Off + +# [訳注] PENDINGDB_LOCK_TIMEOUT [>=2.1.2 && <=2.1.4] と +# PENDINGDB_LOCK_ATTEMPTS [>=2.1.2 && <=2.1.4] は廃止。 + + + +##### +# ここから後にはユーザが設定できるものはない. これらの変数の多くは, シ +# ステム内部の事情でこのファイルに書いてある. これらのどれも, 変えたり +# mm_cfg.py ファイルで上書きしたりしてはいけない! +##### + +# つぎのディレクトリは, インストールしてある Mailman の重要なファイル +# を見付けるのに使う. PREFIX と EXEC_PREFIX は configure が設定するも +# ので, Mailman パッケージのインストールしてあるディレクトリを指してい +# なければいけない. +PYTHON = '@PYTHON@' +PREFIX = '@prefix@' +EXEC_PREFIX = '@exec_prefix@' +VAR_PREFIX = '@VAR_PREFIX@' + +# autoconf 2.12 のバグへの対策 +if EXEC_PREFIX == '${prefix}': + EXEC_PREFIX = PREFIX + +# CGI の拡張子. 変えるのなら configure スクリプトを使うこと +CGIEXT = '@CGIEXT@' + +# インストールしてある Mailman を所有するグループのグループID [>=2.1; +# MAILMAN_UID, MAILMAN_GID は廃止] +MAILMAN_USER = '@MAILMAN_USER@' +MAILMAN_GROUP = '@MAILMAN_GROUP@' + +# Mailman の CGI での部品の型の列挙 +Toggle = 1 +Radio = 2 +String = 3 +Text = 4 +Email = 5 +EmailList = 6 +Host = 7 +Number = 8 +FileUpload = 9 +Select = 10 # [>=2.1] +Topics = 11 # [>=2.1] +Checkbox = 12 # [>=2.1] +# 「拡張電子メールリスト」. 内容が電子メールアドレスか, ^ が先頭につく +# 正規表現. 送信者制限のテキストボックスで使う. [>=2.1] +EmailListEx = 13 +# 拡張スパムフィルタ [>=2.1.4] +HeaderFilter = 14 + +# 処置 +DEFER = 0 +APPROVE = 1 +REJECT = 2 +DISCARD = 3 +SUBSCRIBE = 4 +UNSUBSCRIBE = 5 # [>=2.1] +ACCEPT = 6 # [>=2.1] +HOLD = 7 # [>=2.1] + +# 標準のテキスト項目の幅 +TEXTFIELDWIDTH = 40 + +# ユーザのオプションのビットフィールド. すべての新規リストの既定値を設定 +# するには上の DEFAULT_NEW_MEMBER_OPTIONS を見る. +Digests = 0 # ほかの方法で扱うので, フラグはいらない. +DisableDelivery = 1 # 旧式 [>=2.1]; set/getDeliveryStatus() を使うこと. +DontReceiveOwnPosts = 2 # 通常配信の会員のみ +AcknowledgePosts = 4 +DisableMime = 8 # まとめ送りの会員のみ +ConcealSubscription = 16 +SuppressPasswordReminder = 32 +ReceiveNonmatchingTopics = 64 +Moderate = 128 +DontReceiveDuplicates = 256 + +# 短縮形のオプション名とフラグの対応 [>=2.1] +OPTINFO = {'hide' : ConcealSubscription, + 'nomail' : DisableDelivery, + 'ack' : AcknowledgePosts, + 'notmetoo': DontReceiveOwnPosts, + 'digest' : 0, + 'plain' : DisableMime, + 'nodupes' : DontReceiveDuplicates + } + +# 認証の種類 [>=2.1] +# +# Mailman ではつぎの役割を定義している: + +# - ユーザ. 自分の個人オプション設定を変える以外はなんの権限もない普通 +# のユーザ +# - リスト作成者. リストの作成と削除ができるが, (必ずしも) リストの設 +# 定はできないひと. +# - リスト司会者. 入会申請や保留メッセージのような, 保留申請を扱えるひと +# - リスト管理者. リストのすべてを制御でき, リストの設定もでき, リスト +# 会員のユーザオプションを変更でき, 会員を入退会させられ, といったひと. +# - サイト管理者. サイト全体を全般的に制御でき, 以上に述べたようなすべて +# の作業ができるひと. この人物は普通, コマンドラインツールも操作できる. + +UnAuthorized = 0 +AuthUser = 1 # ユーザの誰かさん +AuthCreator = 2 # リスト創造者/抹殺者 +AuthListAdmin = 3 # リスト管理者 (あるリスト全体を制御) +AuthListModerator = 4 # リスト司会者 (保留申請だけ扱える) +AuthSiteAdmin = 5 # サイト管理者 (すべてを制御できる) + +# 役に立つディレクトリ名 +LIST_DATA_DIR = os.path.join(VAR_PREFIX, 'lists') +LOG_DIR = os.path.join(VAR_PREFIX, 'logs') +LOCK_DIR = os.path.join(VAR_PREFIX, 'locks') +DATA_DIR = os.path.join(VAR_PREFIX, 'data') +SPAM_DIR = os.path.join(VAR_PREFIX, 'spam') +WRAPPER_DIR = os.path.join(EXEC_PREFIX, 'mail') +BIN_DIR = os.path.join(PREFIX, 'bin') +SCRIPTS_DIR = os.path.join(PREFIX, 'scripts') +TEMPLATE_DIR = os.path.join(PREFIX, 'templates') +MESSAGES_DIR = os.path.join(PREFIX, 'messages') +PUBLIC_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'public') +PRIVATE_ARCHIVE_FILE_DIR = os.path.join(VAR_PREFIX, 'archives', 'private') + +# Qrunner サブシステムが使うディレクトリ +QUEUE_DIR = os.path.join(VAR_PREFIX, 'qfiles') +INQUEUE_DIR = os.path.join(QUEUE_DIR, 'in') +OUTQUEUE_DIR = os.path.join(QUEUE_DIR, 'out') +CMDQUEUE_DIR = os.path.join(QUEUE_DIR, 'commands') +BOUNCEQUEUE_DIR = os.path.join(QUEUE_DIR, 'bounces') +NEWSQUEUE_DIR = os.path.join(QUEUE_DIR, 'news') +ARCHQUEUE_DIR = os.path.join(QUEUE_DIR, 'archive') +SHUNTQUEUE_DIR = os.path.join(QUEUE_DIR, 'shunt') +VIRGINQUEUE_DIR = os.path.join(QUEUE_DIR, 'virgin') +BADQUEUE_DIR = os.path.join(QUEUE_DIR, 'bad') +RETRYQUEUE_DIR = os.path.join(QUEUE_DIR, 'retry') # [>=2.1.4] +MAILDIR_DIR = os.path.join(QUEUE_DIR, 'maildir') + +# その他役に立つファイル名 +PIDFILE = os.path.join(DATA_DIR, 'master-qrunner.pid') +SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw') +LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw') + +# バージョン番号関係をインポート +from Version import * + +# Vgg: 言語の説明とキャラクタセットの辞書 [>=2.1]. なにかあたらしい言 +# 語に対応したらここに項目を付け加えなければいけない. キーは地域化した +# テキストの入っているディレクトリ名. 値は タプルで, 1 つめの要素が言 +# 語の説明で, これはカタログで使う. 2 つめの要素は言語のキャラクタセッ +# ト. このコードは私の GNU/Linux の /usr/share/locale からみつけて +# きた :-) [訳注: その後も言語が追加されている.] +# TK: 配布ターボールにある言語をサイト管理者が選んでインストールできる +# ようにした [>= 2.2 alpha1] [訳注: 米国英語 (en) は必ずインストールさ +# れる]. mm_cfg.py の表記で後方互換性を取るために, add_language() 関 +# 数は変えていない. 配布物にない独自の言語を追加するときは, ソースファ +# イルのディレクトリに言語のファイルを入れて '--with-languages' オプ +# ションで configure しただけではだめで, mm_cfg.py でも [訳注: +# add_language() 関数を使って] 言語を追加しなければいけない. +# +# [訳注] +# 自分のサイトで「中国語」を使えるようにしている(いた)のなら注意: +# +# o 言語のコード, 説明, キャラクタセットが, 順次つぎのように変更され +# た: +# [<=2.1.3] +# add_language('big5', _('Traditional Chinese'), 'big5') +# add_language('gb', _('Simplified Chinese'), 'gb2312') +# [2.1.4, 2.1.5] +# add_language('zh_CN', _('Chinese (China)'), 'gb2312') +# add_language('zh_TW', _('Chinese (Taiwan)'), 'big5') +# [>=2.1.6] +# add_language('zh_CN', _('Chinese (China)'), 'utf-8') +# add_language('zh_TW', _('Chinese (Taiwan)'), 'utf-8') +# +# o 2.1.6 より, 地域化テキストとカタログのメンテナンス (2.0 時点で止 +# まっていた) が再開された. ただし zh_TW についてはカタログのみで, +# 地域化テキストのメンテナンスは未着手. +# +def _(s): + return s + +LANGUAGES = 'en ' + '@LANGUAGES@' +LANGUAGE_DICT = { + 'ca': (_('Catalan'), 'iso-8859-1'), + 'cs': (_('Czech'), 'iso-8859-2'), + 'da': (_('Danish'), 'iso-8859-1'), + 'de': (_('German'), 'iso-8859-1'), + 'en': (_('English (USA)'), 'us-ascii'), + 'es': (_('Spanish (Spain)'), 'iso-8859-1'), + 'et': (_('Estonian'), 'iso-8859-15'), + 'eu': (_('Euskara'), 'iso-8859-15'), # バスク語 + 'fi': (_('Finnish'), 'iso-8859-1'), + 'fr': (_('French'), 'iso-8859-1'), + 'hr': (_('Croatian'), 'iso-8859-2'), + 'hu': (_('Hungarian'), 'iso-8859-2'), + 'ia': (_('Interlingua'), 'iso-8859-15'), + 'it': (_('Italian'), 'iso-8859-1'), + 'ja': (_('Japanese'), 'euc-jp'), + 'ko': (_('Korean'), 'euc-kr'), + 'lt': (_('Lithuanian'), 'iso-8859-13'), + 'nl': (_('Dutch'), 'iso-8859-1'), + 'no': (_('Norwegian'), 'iso-8859-1'), + 'pl': (_('Polish'), 'iso-8859-2'), + 'pt': (_('Portuguese'), 'iso-8859-1'), + 'pt_BR':(_('Portuguese (Brazil)'), 'iso-8859-1'), + 'ro': (_('Romanian'), 'iso-8859-2'), + 'ru': (_('Russian'), 'koi8-r'), + 'sr': (_('Serbian'), 'utf-8'), + 'sl': (_('Slovenian'), 'iso-8859-2'), + 'sv': (_('Swedish'), 'iso-8859-1'), + 'tr': (_('Turkish'), 'iso-8859-9'), + 'uk': (_('Ukrainian'), 'utf-8'), + 'zh_CN':(_('Chinese (China)'), 'utf-8'), + 'zh_TW':(_('Chinese (Taiwan)'), 'utf-8'), +} + +LC_DESCRIPTIONS = {} + +def add_language(code, description, charset): + LC_DESCRIPTIONS[code] = (description, charset) + +for lang in LANGUAGES.split(): + if lang in LANGUAGE_DICT.keys(): + add_language(lang, LANGUAGE_DICT[lang][0], LANGUAGE_DICT[lang][1]) + +del _ diff --git a/src/mailman/messages/ja/doc/mailman-install.tex b/src/mailman/messages/ja/doc/mailman-install.tex new file mode 100644 index 000000000..aa4297400 --- /dev/null +++ b/src/mailman/messages/ja/doc/mailman-install.tex @@ -0,0 +1,1933 @@ +\documentclass{howto} + +\title{GNU Mailman - インストールマニュアル} +\author{Barry Warsaw} +\authoraddress{\email{barry(at)python.org}} + +\date{\today} +\release{2.1} % software release, not documentation +\setreleaseinfo{} % empty for final release +\setshortversion{2.1} % major.minor only for software + +\begin{document} + +\maketitle + +% This makes the Abstract go on a separate page in the HTML version; +% if a copyright notice is used, it should go immediately after this. +% +\ifhtml +\chapter*{序\label{front}} +\fi + +\begin{abstract} +\noindent +この文書は GNU Mailman を POSIX システム (例: \UNIX{}, MacOSX, GNU/Linux) +にインストールする方法を説明するものです. 基本的なインストール手順 +だけでなく, あなたが使用するウェブとメールサーバに統合するための +ガイドラインを含んでいます\footnote{ +訳注:現時点で翻訳は訳者(菊地・池田)の環境において確認できる部分 +に限られています. +}. + + + +\noindent +GNU Mailman のウェブサイトは \url{http://www.list.org} です. +\end{abstract} + +% The ugly "%begin{latexonly}" pseudo-environment supresses the table +% of contents for HTML generation. +% +%begin{latexonly} +\tableofcontents +%end{latexonly} + + +\section{インストールの必要事項} + +GNU Mailman は \UNIX{} や MacOSX, GNU/Linux といった POSIX に基くシステム +のほとんどで稼動します. 現在のところ Windows では動きません. あなたが +メールを送信できるメールサーバを必要とし, CGI/1.1 API を備えたウェブ +サーバが必要です. ウェブサーバには +\ulink{Apache}{http://httpd.apache.org} が, ぴったりです. メールサーバには +例えば, +\ulink{Postfix}{http://www.postfix.org}, +\ulink{Exim}{http://www.exim.org}, +\ulink{Sendmail}{http://www.sendmail.org}, +\ulink{qmail}{http://cr.yp.to/qmail.html} +などはどれも使えます. + +Mailman をソースからインストールするには, セキュリティ向上のために +用いられている ラップ\footnote{訳註: wrapper ... ○○ラップ(商品名)と同じ +「包む」という意味なので, こう訳してみました} +プログラムを構築するときに, ANSI C コンパイラーが +必要です. \ulink{GNU C コンパイラ gcc}{http://gcc.gnu.org} の 2.8.1 以降の +バージョンでうまくいきます. + +システムには \ulink{Python}{http://www.python.org} インタプリタが +どこかにインストールされていなければなりません. +Mailman 2.1 には Python 2.1 またはそれよりも新しいものが必要です. +Python 2.3 以上を推奨します. + +\section{システムセットアップ} + +Mailman ソフトウェアのインストールの前に,特定のユーザとグループを +追加登録することでシステムの準備をする必要があります. +このため, この節のステップを実行するには root になる必要があります. + +\subsection{グループとユーザの追加} + +Mailman は, ファイルを所有し, プロセスを走らせるために, 他で使用されていない +ユーザとグループの名前を必要とします. Mailman の基本的なセキュリティは +グループ所有権の許可(パーミッション)に基いています. 従って, このステップを +きちんとしておくことが重要です\footnote{インストールが完了してから +パーミッションをチェックして修正することができます.}. 典型的には, +\code{mailman} という名前のユーザとグループを作成することになります. +\code{mailman} ユーザは \code{mailman} グループのメンバーでなければ +なりません. Mailman は \code{mailman} ユーザとグループの下に, +set-group-id (setgid) ビットを立ててインストールされます. + +もし, この名前が既に使われていたなら, 別のユーザとグループ名を選ぶことが +できますが, \program{configure} を走らせるときに覚えておかないといけません. +もし, 別のユーザ名を選んだなら, これを \program{configure} の +\longprogramopt{with-username} オプションで指定します. また, 別の +グループ名を選んだ場合には, \program{configure} の +\longprogramopt{with-username} オプションで指定してください. + +Linux システムでは, 次のコマンドでこれらのアカウントを作成することが +できます. ご利用のシステムのマニュアルで詳細を確認してください: + +\begin{verbatim} + % groupadd mailman + % useradd -c''GNU Mailman'' -s /no/shell -d /no/home -g mailman mailman +\end{verbatim} + +\subsection{インストールディレクトリの作成\label{create-install-dir}} +通常, Mailman は単一のディレクトリにインストールされ, そこには +Mailman ソースコードと, 実行時のデータ(リストと保存書庫)の両方が入ります. +静的なプログラムファイルと変化するデータファイルを分離して, 別のディレクトリ +に入れることも可能です. ここではこのことに関するオプションを説明します. + +Mailman のデフォルトのインストールディレクトリは +\file{/usr/local/mailman}\footnote{これは Mailman 2.1 のデフォルトです. +以前のバージョンでは, /home/mailman に全てインストールしていました.} +このインストールディレクトリ(\var{\$prefix} で参照します) を変更するには +configure で \longprogramopt{prefix} オプションを使います. +以前のバージョンから更新するには, インストールディレクトリを変更す +るので無い限り, \longprogramopt{prefix} を設定する必要があります. + +\begin{notice}[warning] +Mailman を \code{nosuid} オプションでマウントされたファイルシステムに +インストールすることはできません. これがあると Mailman のインストールに +失敗します. というのは, セキュリティ上の理由で setgid プログラムの利用を +前提としているからです. もし, これがあてはまるようでしたら, 単純に, +setgid プログラムを許している場所に Maiman をインストールしてください. +\end{notice} + +インストールのディレクトリが \code{mailman} グループに設定されて +いることを確認してください (あるいは \longprogramopt{with-groupname} で指定 +しようとしているグループ). そして, setgid ビットがセットされ +ていることを確認してください\footnote{もし, BSD システムを使うなら +\ref{bsd-issues} も読んでください} また, このディレクトリが全ての +ユーザに読み取りと実行(移動)可能であることを保証したいと思う +でしょう. 以下のシェルコマンドでこれらのことが設定できます: + +\begin{verbatim} + % cd $prefix + % chgrp mailman . + % chmod a+rx,g+ws . +\end{verbatim} + +これで, Mailman ソフトウェアを configure しインストールする +準備ができました. + +\section{Mailman の構築とインストール\label{building}} + +\subsection{\program{configure} を実行} + +Mailman をインストールする前に \program{configure} を実行して, システム +で必要になるいろいろなインストールオプションを設定しなければなりません. + +\begin{notice}[note] +下にある,\longprogramopt{with-mail-gid} と \longprogramopt{with-cgi-gid} +のオプションに特に注意. 多分これが必要になります. +\end{notice} + +この節に書いてある手順を実行する間は, あなたは root に +なるべきではあり \strong{ません}. 自分自身のログイン名か, 他のソフトを +インストールするときに使うアカウントを使ってください. また, +\code{mailman} ユーザになる必要はありませんが, そうしても構いません. +但し, 前の手順で作成した \var{\$prefix} ディレクトリの書き込み許可を +得るためには, そのアカウントが \code{mailman} グループに所属している +必要があります. +ターゲットのインストールディレクトリに書き込み権限があることと, +そこに setgid ファイルを作成できることを確認してください. +(NFS や他のマウント方式で setgid を禁止している場合があります) + +もし, 他の GNU ソフトをインストールしたことがあるなら, \program{configure} +スクリプトにはおなじみでしょう. Mailman の tarball を開いた +ディレクトリに \program{cd} して, \program{configure} を引数を付けずに実行して +ください: + +\begin{verbatim} + % cd mailman-<version> + % ./configure + % make install +\end{verbatim} + +以下のオプションで Mailman のインストールをカスタマイズできます. + +\begin{description} +\item[\longprogramopt{prefix}=\var{dir}] + 標準的な GNU configure のオプションで Mailman がインス + トールされることになるベースのディレクトリを変更します. + デフォルトでは \var{\$prefix} は \file{/usr/local/mailman} です.この + ディレクトリはその時点で存在していなければならず, + \ref{create-install-dir} で説明したようにセットアップされていなけれ + ばなりません. + +\item[\longprogramopt{exec-prefix}=\var{dir}] + 標準的な GNU configure のオプションでアーキテクチャに + 依存したバイナリのインストールディレクトリを指定できます. + +\item[\longprogramopt{with-var-prefix}=\var{dir}] + 交換可能なデータを \var{\$prefix} や \var{\$exec-prefix} の代わりに + \var{dir} の下に保存します. このようなデータの例としては, + リストの保存書庫やリスト設定データベースがあります. + +\item[\longprogramopt{with-python}=\file{/path/to/python}] + ラッププログラムで使用する Python インタプリタを変更 + して指定することができます.デフォルトはシェルの \var{\$PATH} + の中で最初に見つかったものを使います. + +\item[\longprogramopt{with-username}=\var{username-or-uid}] + \code{mailman} でないユーザ名を使う場合に指定する. + このオプションの値には整数のユーザID またはユーザ名を使うことができます. + \var{\$prefix} ディレクトリがこのユーザの所有であることを確認してください. + +\item[\longprogramopt{with-groupname}=\var{groupname-or-gid}] + \code{mailman} でないグループ名を使う場合に指定する. + このオプションの値には整数のグループID またはグループ名を使うことができます. + \var{\$prefix} ディレクトリがこのグループの所有であることを確認してください. + +\item[\longprogramopt{with-mail-gid}=\var{group-or-groups}] + メールラップ を介してスクリプトを実行する際のグループを + 指定します.\var{group-or-groups} は,1個または複数の整数 + のグループID でも,グループの名前であっても可です.リス + トの最初の値で実際に存在 するグループの値が使用されます. + デフォルトでは,これは \code{mailman} \code{other} \code{mail} + \code{daemon} のリストになっています. + + \begin{notice}[note] + これは高度にシステム依存であり,正しい値を知っておく必 + 要があります.というのは,グループ ID が メールラップ プロ + グラムにコンパイルされてセキュリティを高めるからです. + \program{Sendmail} を使っているシステムでは, \file{sendmail.cf} に + \var{DefaultUser} を使って \program{sendmail} プロセスの gid が 設定 + されています.(もし,コメントアウトされていたら,それで + もデフォルトを示しているかもしれません) + \end{notice} + + このスイッチの正しい値を知るために, 使用しているメールサーバの + 説明や設定ファイルをチェックしてください. + +\item[\longprogramopt{with-cgi-gid}=\var{group-or-groups}] + CGI ラップ を介してスクリプトを実行する際のグループを + 指定します. \var{group-or-groups} は, 1個または複数の整数 + のグループID でも,グループの名前であっても可です.リス + トの最初の値で実際に存在 するグループの値が使用されます. + デフォルトでは,これは \code{www} \code{www-data} \code{nobody} の リスト + になっています. + + \begin{notice}[note] + この値は Web サーバの設定に依存します.正しい値を知っ + ておく必要があります. というのは,グループIDがCGI ラップ + プログラムにコンパイルされてセキュリティを高めるからで + す.これが違っていると Mailman CGI スクリプトは 動きま + せん. + \end{notice} + + もし Apache を使っていれば,\file{httpd.conf} に書かれている + \var{Group} オプション の値をチェックしてください. + +\item[\longprogramopt{with-cgi-ext}=\var{extension}] + cgi プログラムの拡張子を指定します. \file{\var{\$prefix}/cgi-bin} に + 置かれた CGI ラップ はこの拡張子を持ちます.(ウェブサーバ + によっては 拡張子が必要です) \var{extension} には区切りの . (dot) + を入れておくこと. + +\item[\longprogramopt{with-mailhost}=\var{hostname}] + メールが出て行く時のホスト名(FQDN)を指定します. インストール + が完了すれば, この値は \file{\var{\$prefix}/Mailman/mm_cfg.py} で上書き + することができます. + +\item[\longprogramopt{with-urlhost}=\var{hostname}] + ウェブ URL のホスト名 (FQDN) を指定します. インストールが + 完了すれば, この値は \file{\var{\$prefix}/Mailman/mm_cfg.py} で上書き + することができます. + +\item[\longprogramopt{with-gcc}=no] + gcc が見つかっても使いません.\program{cc} が \var{\$PATH} に無いとい + けません. + +\end{description} + +\subsection{Make とインストール} + +\program{configure} を実行したら, \program{make} を走らせ, 次に +\program{make install} とすることで, Mailman を構築しインストールする +ことができます. + +\section{インストールのチェック} + +\program{make install} を実行した後, 正しいパーミッションとグループ +所有権が設定されていることを \program{check_perms} スクリプトで +確かめてください. まずインストールディレクトリ(\var{\$prefix})に移動します. +そして, \program{bin/check_perms} プログラムを実行します. +ソースディレクトリで \program{bin/check_perms} を実行しようとしないでく +ださい. インストールディレクトリでのみ実行可能です. + +これが問題を報告しなければ, あなたのインストールは正しく設定さ +れていた可能性が高い <ウィンク> です. もし, 問題点が報告されたら, +手で修正するか, もう一度インストールをやりなおすか, \program{check_perms} +を使って(多分, 一番簡単)修正することが出来ます. + +\begin{itemize} +\item インストールを行ったユーザ (\var{\$prefix} のファイルの所有権を持つ + ユーザ) になるか, root になります. + +\item \program{bin/check_perms -f} を実行します. + +\item エラーの報告がなくなるまで, 上の手順を繰り返す! +\end{itemize} + +\section{ウェブサーバの設定} + +おめでとう!Mailman ソフトウェアのインストールが完了しました. +しかし,実際に全てをうまく動かすには,Mailman を ウェブサーバと +メールシステムの 両方に接続しないといけません. + +もし,メールとウェブサーバを別のマシンで動かして,Mailman を NFS +経由で 共有したいと考えていたら,その2つのマシンの時計が同期 +していることを 確かめてください.この手の環境では, +\file{Mailman/LockFile.py} に定義された \var{CLOCK_SLOP} という定数を使って, +時計のずれを補償したファイルロック機構 にすることができます. + +この節では Mailman のウェブインタフェースをウェブサーバに接続するために +必要な事柄を説明します. ここでの手順は Apache ウェブサーバに若干偏って +いますので, 詳細についてはご利用のウェブサーバの説明書を参照してください. + +ウェブサーバの設定で \file{\var{\$prefix}/cgi-bin} に CGI スクリプトの +実行許可を与えてください. 書き加える行は以下のようなものになる +はずです. (もちろん, \var{\$prefix} のところは実際の絶対パスに +してください.) + +\begin{verbatim} + Exec /mailman/* $prefix/cgi-bin/* +\end{verbatim} +% $ - emacs turd + + 又は: + +\begin{verbatim} + ScriptAlias /mailman/ $prefix/cgi-bin/ +\end{verbatim} +% $ - emacs turd + +\begin{notice}[warning] +CGIスクリプトを実行する ユーザIDが \code{mailman} グループに入って +\strong{いない}ことをよく確認してください.でないと,非公開の保存書庫 +が誰にでも見られてしまいます. +\end{notice} + +Mailman, Python, GNU のロゴをWebサーバのアクセス可能なところに +コピーしてください.例えば Apacheの場合,画像ファイルを入れて +おくのに \file{icons} ディレクトリが用意されているはずです.例: + +\begin{verbatim} + % cp $prefix/icons/*.{jpg,png} /path/to/apache/icons +\end{verbatim} + +\file{\var{\$prefix}/Mailman/mm_cfg.py} にロゴのベースディレクトリを書いた +行を追加してください.例えば: + +\begin{verbatim} + IMAGE_LOGOS = '/images/' +\end{verbatim} + +\var{IMAGE_LOGOS} のデフォルト値は \file{/icons/} です. +\file{Defaults.py.in} に書かれたコメントを読んでください. + +Pipermail の公開メーリングリスト保存書庫を参照できるように +Web サーバを 設定してください. 例えば Apache の場合: + +\begin{verbatim} + Alias /pipermail/ $varprefix/archives/public/ +\end{verbatim} +% $ - emacs turd + +ここで, \var{\$varprefix} は通常は \var{\$prefix} と同じで, +\longprogramopt{with-var-prefix} オプションを付けて \program{configure} +した場合にはその値となります. また, +このディレクトリでシンボリックリンクをたどることができるように +ウェブサーバを設定してください.でないと,Pipermail の書庫にアク +セスできません. Apache のユーザは \var{FollowSymLinks} オプションを +調べてください. + +また, もし公開保存書庫を国際化したいのであれば, Pipermail +ディレクトリのデフォルト文字集合の指示をオフにした方がよいかも +しれません. でないと, 多言語の保存書庫は正しく見ることができな +いでしょう. Apache の標準のインストールについての設定例は: + +\begin{verbatim} + <Directory "/usr/local/mailman/archives/public/"> + AddDefaultCharset Off + </Directory> +\end{verbatim} + +ここで, ウェブサーバを再起動してください. + +\section{メールサーバの設定\label{mail-server}} + +この節では Mailman のメールインタフェースをメールサーバに +接続するのに必要な事柄を説明します. ここでの手順はメールサーバによって +異なりますが; もしあなたのメールサーバが次の小節に見当たらない +場合は, ここにある文書から一般化することを試してください. そして, 文書の更新を +Mailman 開発者にプレゼントすることも考えてください. + +\subsection{Postfix メールサーバを使う場合} + +Mailman は標準の Postfix インストールとうまく合うようになっています. +Postfix 2.1.5 (を含む) までの各種バージョンで試験済みです. + +デフォルトでは, Postfix は \code{-owner} と \code{-request} のアドレスを +特殊扱いします. このようなメールも Mailman に届けてもらうために, +次のように \file{main.cf} に追加してこのオプションをオフにします: + +\begin{verbatim} + owner_request_special = no +\end{verbatim} + +Mailman のオプションである VERP 配送をサポートするためには, +\code{luser_relay} を無効(これが既定値)にしたままで, +\code{recipient_delimiter} を +設定して 拡張アドレス\footnote{訳注:原文は extended address +semantics なので, `拡張されたアドレスの意味論'. 実際には, +extended address とだけ書いてある文献が多いようなので, `意味論' +を省略した.} +を有効にします. +\file{main.cf} の \code{luser_relay} の値をどれもコメントアウトし, +デフォルトのままにします. また, 次のように \file{main.cf} ファイルに +追加します. + +\begin{verbatim} + recipient_delimiter = + +\end{verbatim} + +区切り記号として \samp{+} を使うと \file{Defaults.py} にある +\var{VERP_FORMAT} と \var{VERP_REGEXP} のデフォルト値とうまく合います. + +存在しないローカルアドレスにメールを送信しようとすると, Postfix は +450 のエラーコードを返すかもしれません. これは一時的なエラーを表す +コードなので, Mailman はデフォルトで \var{DELIVERY_RETRY_PERIOD} -- 5 +日間メールを送信しようとし続けます. 次のように \file{main.cf} に +設定することで, 存在しないローカルユーザについて恒久的なエラーコード +を返させることができます. + +\begin{verbatim} + unknown_local_recipient_reject_code = 550 +\end{verbatim} + +最後に, もし Postfix スタイルの仮想ドメインを使っているなら, +下の仮想ドメインサポートの節を読んでください. + +\subsubsection{Postfix と Mailman の統合} + +Postfix と Mailman を統合すると, 新しいリストを作成したり, +リストを削除したときに, Postfix のエイリアスデータベースが自動的に +更新されるようになります. これを実現するための手順は以下のとおりです. + +以下の説明では, Mailman がデフォルトの位置, つまり \file{/usr/local/mailman} +にインストールされているものと仮定します. もし, そうでなければ, +\program{configure} で用いた \longprogramopt{prefix} と +\longprogramopt{with-var-prefix} のオプションに従って読み替えてください. + +\begin{notice}[note] +もし, 仮想ドメインを使っていて, 仮想ドメインの設定を優先させたいと +いう場合には, \ref{postfix-virtual} 節を先に読んでください! +\end{notice} + +\begin{itemize} +\item \file{\var{\$prefix}/Mailman/mm_cfg.py} ファイルの最後に次のように + 追加してください: + + \begin{verbatim} + MTA = 'Postfix' + \end{verbatim} + + 変数 MTA は \file{Mailman/MTA} ディレクトリにあるモジュールの + 名前を指定します. ここには, リストが作成/削除されるときに + 実行される, メールサーバ固有の関数が入っています. + +\item \file{Defaults.py} ファイルを見て, \var{POSTFIX_ALIAS_CMD} と + \var{POSTFIX_MAP_CMD} コマンド変数の値を確認してください. + これらは, それぞれ \program{postalias} と \program{postmap} プログラム + を指していなければなりません. もし変更が必要の場合は \file{mm_cfg.py} + の中で行うようにしてください. + +\item \program{bin/genaliases} スクリプトを実行して \file{aliases} + ファイルを初期化してください. + + \begin{verbatim} + % cd /usr/local/mailman + % bin/genaliases + \end{verbatim} + + \file{data/aliases} と \file{data/aliases.db} の所有者が + \code{mailman} で, グループ所有者が \code{mailman} であることを + 確認してください. これらは configure コマンドで設定したユーザ + グループです: + + \begin{verbatim} + % su + % chown mailman:mailman data/aliases* + \end{verbatim} + +\item Postfix の \file{main.cf} ファイルの \var{alias_maps} 変数が + 次のパスを含むように書き換えてください: + + \begin{verbatim} + /usr/local/mailman/data/aliases + \end{verbatim} + + 最後の \code{.db} が付いていないことにも注意してください. + \var{alias_database} にこれを入れてはいけません. なぜなら, Postfix + の \program{newaliases} コマンドが Mailman の \file{aliases.db} + ファイルを書き換えてしまうからです. しかし, ローカルアドレスを探索する + ときには \file{aliases.db} を見てもらいます. + + このエントリについて \code{hash:} スタイルのデータベースを作りたい + と思うでしょう. これが記入例です: + + \begin{verbatim} + alias_maps = hash:/etc/postfix/aliases, + hash:/usr/local/mailman/data/aliases + \end{verbatim} + +\item Mailman を configure するときに, \longprogramopt{with-mail-gid=mailman} + スイッチを使用してください; これは \code{mailman} ユーザを追加した + 後で Mailman を configure していればデフォルトになります. + \file{aliases.db} ファイルの所有者が \code{mailman} なので, + Postfix は Mailman の ラッププログラムを \code{mailman} の uid と gid で + 実行します. + +\end{itemize} + +これで完了! 問題がひとつ: リストを作成したり削除すると, \file{aliases.db} +は更新されますが, \program{postfix reload} を自動的に実行するわけでは +ありません. これを実行するには root にならなければなりませんが, root に +suid したスクリプトは安全でないからです. Postfix が \file{aliases.db} +ファイルの変更とテーブルの更新に気が付くのに 1分ほどかかるだけです. + +\subsubsection{仮想ドメイン\label{postfix-virtual}} + +Postfix 2.0 は ``仮想エイリアス ドメイン\footnote{訳注:virtual alias domains. }'' をサポートします. +これは, 以前のバージョンの Postfix では ``Postfix スタイルの仮想ドメイン'' +と呼ばれていたものです. +Mailman で動作する仮想エイリアスドメインを作るには, +Postfix と Mailman の両方で設定をする必要があります. +Mailman は, (既定では) \file{/usr/local/mailman/data/virtual-mailman} +という名前のファイルにすべての仮想エイリアスのマップを書き込みます. +また, Postfix が実際に使う \program{virtual-mailman.db} +ファイルを作成するために \program{postmap} を使います. + +まず, Postfix の仮想エイリアス ドメインを Postfix の文書の説明どおりに作ります +(Postfix の \code{virtual(5)} マニュアルページを参照してください). +マニュアルページの説明にある +\code{virtual-alias.domain anything} +の行は, 自分で入れなければいけないことに注意してください. +Mailman は \file{virtual-mailman} にこの行を入れてくれません. +Mailman と統合する前に, +この仮想エイリアス ドメインが正しく動作するようにしておくことが, +とても大事です. + +次に, Postfix と \var{virtual_alias_maps} 変数に, virtual-mailman +ファイルの位置のパス名を追加します. 例: + +\begin{verbatim} + virtual_alias_maps = <通常の仮想エイリアスのファイル>, + hash:/usr/local/mailman/data/virtual-mailman +\end{verbatim} + +ここでは, Mailman は既定の場所にインストールしてあると仮定しています. +\var{virtual_alias_maps} +変数のない古いバージョンの Postfix を使っているのなら, +かわりに \var{virtual_maps} 変数を使います. + +次に, \file{mm_cfg.py} ファイルで, +\var{POSTFIX_STYLE_VIRTUAL_DOMAINS} に, +Mailman が更新する仮想ドメインのリストを設定するとよいでしょう. +これは, Postfix のほうでサポートする仮想ドメインすべてとは限りません! +このリストの要素は, メーリングリスト オブジェクトの \var{host_name} +属性と照合されます. 完全一致でなければいけません. + +例を挙げます. +Postfix は仮想ドメイン \code{dom1.ain}, \code{dom2.ain}, \code{dom3.ain}, +を扱うよう設定してあるものとし, さらに, +\file{main.cf} ファイルに次の設定がしてあるものとします: + +\begin{verbatim} + myhostname = mail.dom1.ain + mydomain = dom1.ain + mydestination = $myhostname, localhost.$mydomain + virtual_alias_maps = + hash:/some/path/to/virtual-dom1, + hash:/some/path/to/virtual-dom2, + hash:/some/path/to/virtual-dom2 +\end{verbatim} + +たとえば \file{virtual-dom1} ファイルに, つぎの行があるとします: + +\begin{verbatim} + dom1.ain IGNORE + @dom1.ain @mail.dom1.ain +\end{verbatim} + +これは Postfix に, \code{dom1.ain} 宛てのものはなんでも, +\code{mail.dom1.com} の同名のメールボックス (既定の配送先) に配送するよう +指示していることになります. + +この場合, \var{POSTFIX_STYLE_VIRTUAL_DOMAINS} には \code{dom1.ain} +を含めません. なぜなら +そうしなければ, Mailman は dom1.ain ドメインのメーリングリストの項目を + +\begin{verbatim} + mylist@dom1.ain mylist + mylist-request@dom1.ain mylist-request + # 等々... +\end{verbatim} + +のように書き込むからです. + +より特定した項目が, より一般的な項目を上書きするので, +\code{dom1.ain} メーリングリストへの配送は止められてしまいます. + +いっぽう, \code{dom2.ain} と \code{dom3.ain} は \file{mm_cfg.py} に含めます: + +\begin{verbatim} + POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain'] +\end{verbatim} + +こうして, この二つのドメインのいずれかに属するメーリングリストを +Mailman が作ったら, \file{/usr/local/mailman/data/virtual-mailman} +には正しい項目が入ります. + +上の \file{data/aliases*} ファイルと同じく, +\file{data/virtual-mailman} と \file{data/virtual-mailman.db} +の両方とも, \code{mailman} のユーザ, グループに +所有されているようにしたほうがいいでしょう. + +\subsubsection{他の方法} + +Fil \email{fil@rezo.net} は, +virtual マップと正規表現を使った他の方法を紹介しています. +以下に説明があります: + +\begin{itemize} +\item (フランス語) \url{http://listes.rezo.net/comment.php} +\item (英語) \url{http://listes.rezo.net/how.php} +\end{itemize} + +リストにアクセスするときのアドレスのドメインに +余分なホスト部がつくのが気にならなければ, これは良い (そしてよりシンプルな) +代替案です. +つまり, \code{mylist@dom.ain} のかわりに \code{mylist@lists.dom.ain} +を使わないといけないのでもよければ, ということです. + +\subsection{Exim メールサーバを使う場合} +% 池田: Exim の用語は, まだ定訳のないものが多い. ここでは次のような訳語を使う: +% +% 原語 日本語訳 +% ======================= ============== +% SMTP callback (callout) SMTP 呼出し検証 +% director ダイレクタ +% domain list ドメインリスト +% main section 首節 +% recipient verification 受信者検証 +% router ルータ +% section 節 +% transport トランスポート + +\begin{notice}[note] +本節は, Nigel Metheringham の ``HOWTO - Exim で Mailman を使う''\footnote{訳注: +``HOWTO - Using Exim and Mailman together''.} から採りました. +これは Mailman 2.0.x と Exim 3 に対応していました. +それを Mailman 2.1 と Exim 4 に対応するように改訂しました. +元の文書は次の場所にあります: +\url{http://www.exim.org/howto/mailman.html}. +\end{notice} + +Mailman のインストールについて説明した箇所の標準的なオプション以外には, +Mailman の設定は必要ありません. +Exim の設定は Mailman に対して透過的です. %??? +Mailman のユーザとグループの設定は, +以下に述べる設定のものと一致していなければいけません. + +\subsubsection{Exim の設定} + +Exim の設定では, Mailman 側で作成したリストは自動的に Exim 側で有効になります. +新たにエイリアスを定義する必要はありません. + +ここで説明する設定方法の欠点は, +複数の異なるメールドメインのリストに対応したシステムでは, 満足に動作しないことです. +Mailman は, 仮想ドメインを扱えるものの, +ひとつの Mailman +のインストレーションで異なる仮想ドメインが同じ名前のリストを別々に持つことには, +まだ対応していません. そのうち変わるでしょう (なお, 後で述べるように, +仮想ドメインをもっとうまく扱う方法もあります). + +以下で説明する設定は, 抜粋です. +Exim が使えるような設定になっており, +リストが属するドメインへのメールを受け付けるようになっていれば, +使えます. このドメインが Exim の設定で扱う他のドメインと分離されているときは, +次のようにする必要があります: + +\begin{itemize} +\item リストのドメイン ``my.list.domain'' を \var{local_domains} に追加する + +\item ``domains=my.list.domain'' オプションを, リストへのダイレクタ (ルータ) + に追加する\footnote{訳注: 後の節で説明するダイレクタ (ルータ) + の設定をしたあとで追加します.} + +\item (必要なら) 他のダイレクタ (ルータ) からそのドメインを除外する +\end{itemize} + +\begin{notice}[note] +この文書での説明は, Exim 3 と Exim 4 のどちらでも動作するようになっています. +Exim 3 では, \var{local_domains} の設定がなければいけません --- Exim 4 では, +たいていは \var{local_domains} ドメインリストのようなものがあります. +ないのなら, どこをどう調整すればうまくいくかは自分でわかっていることと思います. +また, Exim 4 では ``ダイレクタ'' の概念がなくなってしまいました -- +ルータしかありません. ですから Exim 4 を使っているのなら, +この文書で ``ダイレクタ'' と言ったときは ``ルータ'' と読みかえてください. +\end{notice} + +Exim 3 と Exim 4 のいずれを使っていても, +Exim 設定ファイルの 首節\footnote{訳注: main section. +Exim の設定ファイルで, 最初の ``begin ...'' 行より前の, +全般的な設定を記述する部分.}に若干のマクロを追加する必要があります. +また, 新たにトランスポートを定義する必要があります. +Exim 3 では, 新たにダイレクタを追加する必要があります --- +Exim 4 では, 新たにルータを追加して同じことをさせます. + +なお, ここで提供する設定では, +Mailman 2.0 と 2.1 のインストレーションを共存させることもできます. +ただしその場合は, \code{mailman} のかわりに \code{mm21} を使うとよいかもしれません +-- 例えば, \var{MM21_HOME}, \var{mm21_transport} などです. + +\subsubsection{全般的な設定} + +まず, Exim 設定ファイルの最初でいくつかマクロを追加する必要があります. +これによって, 以下で作成するダイレクタ (ルータ) とトランスポートが少し見やすくなります. +当然, Mailman をどう設定しインストールしたかによって, 変更する必要があります. + +\begin{verbatim} + # インストールした Mailman のホームディレクトリ -- つまり Mailman のプリフィクス + # ディレクトリ + MAILMAN_HOME=/usr/local/mailman + MAILMAN_WRAP=MAILMAN_HOME/mail/mailman + + # Mailman のユーザとグループ. Mailman の configure スクリプトに与えた + # --with-mail-gid スイッチと一致しなければいけない. + MAILMAN_USER=mailman + MAILMAN_GROUP=mailman +\end{verbatim} + +\subsubsection{Exim 3\label{exim3-transport} のトランスポート} + +次のものを, Exim 設定ファイルの transports 節 -- つまり, +最初と2番めの ``end'' 行の間のどこか -- に入れます: + +\begin{verbatim} + mailman_transport: + driver = pipe + command = MAILMAN_WRAP \ + '${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ + {post}}' \ + $local_part + current_directory = MAILMAN_HOME + home_directory = MAILMAN_HOME + user = MAILMAN_USER + group = MAILMAN_GROUP +\end{verbatim} + +\subsubsection{Exim 3 のダイレクタ} + +Exim 3 を使っているのなら, 設定ファイルに以下のダイレクタを追加する必要があります +(ダイレクタは, 2つめと3つめの ``end'' 行の間にきます). また, +順序が問題になることを忘れないでください -- +例えば, このダイレクタをエイリアスファイルのダイレクタよりも前に置けば, +Mailman のリストをシステムエイリアスより優先させることができます. 逆も言えます. + +\begin{verbatim} + # リスト 'foo' (投稿アドレス) に関するアドレスすべてを扱う. + # MAILMAN_HOME 下の lists/$local_part/config.pck を探して, + # 自動的にリストの存在を検知する. + mailman_director: + driver = smartuser + require_files = MAILMAN_HOME/lists/$local_part/config.pck + suffix_optional + suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport +\end{verbatim} + +\subsubsection{Exim 4 のルータ} + +Exim 4 では, ダイレクタのようなものはありません +-- かわりに, 新しくルータを追加する必要があります. +なお Exim 4 では, +設定ファイル内の標準的な順序はルータがトランスポートの前にくるように変更されたため, +まずルータについて述べます. +以下のルータを, 設定ファイルの ``begin routers'' の行の後のどこかに入れます. +ルータの順序が問題になることを忘れないでください. + +\begin{verbatim} + mailman_router: + driver = accept + require_files = MAILMAN_HOME/lists/$local_part/config.pck + local_part_suffix_optional + local_part_suffix = -bounces : -bounces+* : \ + -confirm+* : -join : -leave : \ + -owner : -request : -admin + transport = mailman_transport +\end{verbatim} +% $ - emacs turds + +\subsubsection{Exim 4 のトランスポート} + +Exim 4 でのトランスポートは Exim 3 のものと同じです (\ref{exim3-transport} +を見てください) --- 先に示したトランスポートを, Exim 設定ファイルの +``begin transports'' 行の後のどこかにコピーします. + +\subsubsection{その他の注意点} + +Exim は, 充分な量の処理ができるように設定しておかないといけません +--- 例えば, \var{max_recipients} をやたらと小さな値にしてはいけません +--- また, 充分なセキュリティ強度に設定しなければいけません --- +特に, 127.0.0.1 からの中継は許可し, +ほかからはほとんど許可しないように気をつけてください\footnote{訳注: +Mailman は, MTA を通じてメールを送る際に, +HELO (EHLO) コマンドの引数として, 自ホストのプライマリ FQDN を使います. +スパム排除のために, HELO (EHLO) +の引数に自ホスト名をかたるクライアントからの配送を拒否するような設定をしている場合は, +localhost (127.0.0.1) からの配送が拒否されないように気をつけてください.}. +並列配送のようなちょっとした技巧を使ってみたければ, やってみましょう --- +設定を少しずつ変えてみて, うまくいくか確かめます. % ??? +配送遅延の警告メッセージは, 出さないようにするか, +リスト以外のメールでのみ出すように設定しなければいけません. +どこかでホストが落ちるたびに大量のメールを受け取るのは嫌でしょうから. + +\subsubsection{問題点} + +\begin{itemize} + +\item Mailman は, 必要に応じてできるだけ多くの \code{MAIL FROM}/\code{RCPT TO} + を送ろうとします. 結果として, 一回の接続で 10 件, 100 件, + あるいはそれ以上のメッセージが送られることもあり, Exim の + \var{smtp_accept_queue_per_connection} の既定の値を超えてしまうかもしれません. + これは困ったことです. なぜなら, こうなると Exim は queue モードに切り替わり, + リストのメッセージの配送が恐ろしく遅れることになるからです. + これを直すには, Mailman の \var{SMTP_MAX_SESSIONS_PER_CONNECTION} を + (\file{\var{\$prefix}/Mailman/mm_cfg.py} で) Exim の + \var{smtp_accept_queue_per_connection} より小さい値に設定します. + +\item Exim はリストのメッセージに遅延警告メッセージを送ってはいけません. が, + Mailman も Exim の遅延警告メッセージを無視しなければいけません. %% ??? + Mailman 2.1 の配送エラー処理を VERP に対応させると, + 配送エラー処理の的中率が大幅に向上します. + +\item リストが存在するかどうかは, リストの \file{config.pck} + ファイルが存在するかどうかで決めています. 誤ってリストを削除してしまったときは, + このファイルに気をつけましょう. %% ??? + +\item リストにメールを送ったときに, Exim か Mailman + でユーザIDに関するエラーが起きるのなら, \var{MAILMAN_USER} と + \var{MAILMAN_GROUP} が Mailman 自身のものと一致するか (つまり, + \program{configure} スクリプトで使っているものか) を調べます. + また, エイリアスファイルに, + リストのアドレスがエイリアスとして登録されていないかも確かめましょう. +\end{itemize} + +\subsubsection{受信者検証} + +Exim の受信者検証\footnote{訳注: recipient verification.}はとても役に立ちます +-- SMTPの時点で, 配送不能なアドレスを Exim が拒否するようになります. +しかし, これがいちばん役立つのは, +外部から来たメールがローカルのドメインのどれかに向かっているときです. +Mailman のリストのトラヒックは, 自サーバから出て, +サーバの預り知らない外部のさまざまなドメインへと向かいます. +そのうえ, メッセージはたくさんの受信者 +-- Mailman の既定の設定を使い, \var{SMTP_MAX_RCPTS} をいじっていないときは, +最大 500 箇所 -- へ向かうことになります. + +Mailman のリストのトラヒックで受信者検証をするのは, トラブルのもとです. +とりわけ, Mailman からリストの投稿が出ていくときに, +Exim は全ての受信者アドレスを検証しようとします. +ひとつひとつのアドレスについては, DNS 検索にはわずかな時間しか要さないかもしれませんが, +全体としては著しい遅延を引き起こし得ます. +したがって, Mailman のトラヒックに対しては受信者検証を無効にしなければいけません. + +Exim 3 では, 首節に以下のものを入れます: + +\begin{verbatim} + receiver_verify_hosts = !127.0.0.1 +\end{verbatim} + +Exim 4 では, この点についてはおそらく +(\code{RCPT TO} ACL 中の) 既定の ACL 文では考慮されていることでしょう: % ??? + +\begin{verbatim} + accept domains = +local_domains + endpass + message = unknown user + verify = recipient +\end{verbatim} + +これで, 自分のドメインのアドレスに対してだけ受信者検証をするようになります +(これは厳密には, 127.0.0.1 +以外のホストから来るメッセージだけに対して受信者検証をすることとは違いますが, +Mailman にはよく効きます). + +\subsubsection{SMTP 呼出し検証} + +Exim の SMTP 呼出し検証\footnote{訳注: +SMTP callback.}の仕様は, でたらめな送信者アドレスを検出する方法としては, +通常の送信者検証にくらべてはるかに強力です. ところが困ったことに, +バウンスメッセージのヘッダにでたらめなアドレスを入れて送るサーバはたくさんありますし, +また (バウンスメッセージには空のエンヴェロープ送信者を使うことになっているにも関わらず) +でたらめなエンヴェロープ送信者を使ってバウンスメッセージを送るサーバも, +少なからずあるのです. + +Mailman が, +バウンスの発生しているアドレスをきちんと配送停止したり登録を抹消したりできるように, +Mailman のリストへ届くバウンスメッセージは, +たとえそういったバウンスメッセージそれ自体はバウンス不可能なものであっても, +受け取るようにしたほうがいいでしょう. そのため, バウンスメッセージに対しては, +SMTP 呼出し検証は無効にするとよいかもしれません. + +Exim 4 でこれを実現するには, \code{RCPT TO} ACL で以下のようなものを使います: + +\begin{verbatim} + # 呼出し検証などの検査が失敗したとしても, リストへのバウンスメッセージは受け付ける + warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes + condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + accept condition = \ + ${if and {{match{$local_part}{(.*)-bounces\+.*}} \ + {exists {MAILMAN_HOME/lists/$1/config.pck}}} \ + {yes}{no}} + {yes}{no}} + + # そして, SMTP 呼出し検証で送信者アドレスを調べる. + deny !verify = sender/callout=90s +\end{verbatim} + +ヘッダのアドレスにも SMTP 呼出し検証をしたければ, 次のようなものを \code{DATA} ACL +に入れるとよいでしょう. + +\begin{verbatim} + deny !condition = $header_X-WhitelistedRCPT-nohdrfromcallback: + !verify = header_sender/callout=90s +\end{verbatim} +% $ - emacs turd + +\subsubsection{Exim と Mailman で VERP を使う} + +VERP では, 一つのメールを, リストの購読者ごとに別々の送信者 (返送経路) で送ります +-- VERP を使えるようにするためのオプションについては +\file{\var{\$prefix}/Mailman/Defaults.py} の情報を読んでください. +まとめると, Exim で VERP を有効にするのに必要なことは, +\file{\var{\$prefix}/Mailman/mm_cfg.py} に次の行を追加することです: + +\begin{verbatim} + VERP_PASSWORD_REMINDERS = Yes + VERP_PERSONALIZED_DELIVERIES = Yes + VERP_DELIVERY_INTERVAL = Yes + VERP_CONFIRMATIONS = Yes +\end{verbatim} + +(先に説明したダイレクタ (ルータ) は, +VERP のバウンスメッセージをちゃんと処理できるようになっています. ) + +\subsubsection{仮想ドメイン} + +仮想ドメインを扱う手法のひとつとして, +仮想ドメインごとに別々の Mailman をインストールするというものがあります. +現時点では, +ひとつの計算機で異なる仮想ドメインが同じ名前のリストを別々に持てるようにするには, +この方法しかありません\footnote{訳注: +異なる仮想ドメインで同じ名前のリストを別々に使えなくてもかまわなければ, +本節の設定は不要です.}. + +この場合, マクロ \var{MAILMAN_HOME} と \var{MAILMAN_WRAP} は使えません +-- 削除してしまってかまいません. ダイレクタ (ルータ) を次のように変更します: + +\begin{verbatim} + require_files = /virtual/${domain}/mailman/lists/${lc:$local_part}/config.pck +\end{verbatim} +% $ - emacs turd + +そして, トランスポートを次のように変更します: + +\begin{verbatim} + command = /virtual/${domain}/mailman/mail/mailman \ + ${if def:local_part_suffix \ + {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} + {post}} \ + $local_part + current_directory = /virtual/${domain}/mailman + home_directory = /virtual/${domain}/mailman +\end{verbatim} +% $ - emacs turd + +\subsubsection{リストの検証} + +ここでは, Exim のアドレステストセットを使って, +システムの動作の様子を調べる方法を説明します. % ??? +問題のリストを \email{quixote-users@mems-exchange.org} とし, +次の一連のコマンドを \code{mems-exchange.org} メールサーバで実行します ("\% " +は Unix のシェル プロンプトを表します): + +\begin{verbatim} + % exim -bt quixote-users + quixote-users@mems-exchange.org + router = mailman_main_router, transport = mailman_transport + + % exim -bt quixote-users-request + quixote-users-request@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces + quixote-users-bounces@mems-exchange.org + router = mailman_router, transport = mailman_transport + + % exim -bt quixote-users-bounces+luser=example.com + quixote-users-bounces+luser=example.com@mems-exchange.org + router = mailman_router, transport = mailman_transport +\end{verbatim} + +\program{exim -bt} の出力がここに示したようなものになっていれば, +ここまでは順調と言えます: % that's a start ??? +少なくとも, +Exim が適切なメッセージを適切な Mailman のコマンドに渡していることは確認できました. +しかし, インストールしてある Exim/Mailman が, +完全に正しく動作しているという保証はありません! + +\subsubsection{この文書の履歴} + +元になる文書は Nigel Metheringham \email{postmaster@exim.org} が書きました. +Marc Merlin \email{marc_soft@merlins.org} が +Mailman 2.1 と Exim 4 用に改訂しました. +Greg Ward \email{gward@python.net} が書き直し/再構成/明確化/簡略化しました. + +\subsection{Sendmail メールサーバを使う場合} + +\begin{notice}[warning] +Sendmail メールサーバを使うとき, +\file{mm_cfg.py} の中に \var{DELIVERY_MODULE} 設定変数として \code{'Sendmail'} +を入れたいと思うかもしれませんが, そうしては\strong{いけません}. +\file{Sendmail.py} のモジュール名は +間違って付けられています. +デフォルトの \file{SMTPDirect.py} で使う SMTP 方式に対して, コマンドラインで +メッセージを渡す方式を表しています. +\file{Sendmail.py} ファイルには既知のセキュリティホールがあり +概念的可能性を証明するために提供されています\footnote{実際, Mailman の +最近のバージョンでは, このモジュールをわざと動かなくしてあります. +もしこれを有効にしたいのであれば, なにが起こるかよく理解していなければ +いけません.}. +もし \file{SMTPDirect.py} の利用で問題があるなら \file{Sendmail.py} を +使うのでなく, 問題を直すことです. でないとセキュリティ悪用にさらす +ことになりかねません. +\end{notice} + +\subsubsection{Sendmail の ``smrsh'' との適合} + +新しいバージョンの Sendmail は Sendmail がメールプログラムとして +使うことを制限するために ``smrsh'' という制限実行ユーティリティが +付いてきます. 明示的に Mailman のラッププログラムが smrsh で使える +ようにしてあげないと Mailman は動作しません. もしメールが Mailman の +ラッププログラムに届かず, ``operating system error'' がメールの +ログに記録されていれば, この問題に突き当たっていることになります. + +これを解決するのによい方法は: + +\begin{itemize} + \item Sendmail が smrsh ラッププログラムをどこで実行しているかを探す: + + \begin{verbatim} + % grep smrsh /etc/mail/sendmail.cf + \end{verbatim} + + \item 実行許可するメールプログラムを smrsh がどこにシンボリック + リンクしているかを探す. 次のコマンドの最初のほうでどこかの + ディレクトリ(例えば \file{/var/adm/sm.bin} みたいな)のパス + が出てくるでしょう: + + \begin{verbatim} + % strings $path_to_smrsh | less + \end{verbatim} + + \item \file{/var/adm/sm.bin} あるいは自分のシステムで見つけた + ディレクトリ (\file{/etc/smrsh} とか \file{/var/smrsh} とか + \file{/usr/local/smrsh} とか...) へ移って: + + \begin{verbatim} + % cd /var/adm/sm.bin + \end{verbatim} + + \item Mailman のラッププログラムへのシンボリックリンクを作成します: + + \begin{verbatim} + % ln -s /usr/local/mailman/mail/mailman mailman + \end{verbatim} +\end{itemize} + +\subsubsection{Sendmail と Mailman の統合} + +David Champion は Sendmail と Mailman をより密接に統合する, つまり +リストが作成されたときにエイリアステーブルを手で編集しなくても, +Sendmail が自動的に認識し新しいリストに配送するようにするための +レシピを寄贈してくれました. + +Mailman のソース配布物 \file{contrib} ディレクトリに次の4つの +ファイルがあります: + +\begin{itemize} +\item \file{mm-handler.readme} - セットアップする方法の説明 +\item \file{mm-handler} - メール配送エージェント (MDA) +\item \file{mailman.mc} - 設定ファイルの例 +\item \file{virtusertable} - RFC 2142 アドレスを例外にする例 +\end{itemize} + +\subsubsection{性能について} + +Sendmail で性能を落とす要因として確実なのは, 受信者のホストを DNS +で同時に検証するように設定されている場合です. Mailman からサーバに +メールが送信されるときにこれをやると非常に性能が落ちます. +Mailman は \code{localhost} (つまり, 127.0.0.1) から Sendmail の +SMTP ポートに接続しますので, ローカルホストからの接続については +DNS での同時検証を\strong{しない}ように Sendmail を設定してください. + +\subsection{qmail メールサーバを使う場合\label{qmail-issues}} + +ここでは, qmail メール配送エージェントを使うユーザがぶつかった問題をいくつかとりあげます. +Mailman の中心的なメンテナで qmail を使っている者はいませんので, +以下の情報はすべて, Mailman のユーザ コミュニティから寄贈されたものです. +とりわけ, Martin Preishuber と Christian Tismer, そして Balazs Nagy (以下 BN) と +Norbert Bollow (以下 NB) の注釈に負っています. + +\begin{itemize} +\item \longprogramopt{with-mail-gid} \program{configure} オプションを使って, + mail-gid のユーザを, \code{qmail}, \code{mailman}, \code{nofiles} + のいずれかにする必要がありそうです. + + \emph{BN:} どれを選ぶかは, メール格納の方針に大いに依存します. + たとえば, 単純な \file{\~{}alias/.qmail-*} ファイルを使っているのなら, + \program{`id -g alias`} を使います\footnote{訳注: + ユーザ \code{alias} の GID を使う, という意味です.}. + しかし \file{/var/qmail/users} を使っているのなら, + そこで指定したメール gid を使うことになります. + + 仮想ドメインのアドレスが直接 \code{mailman} ユーザに向かうようにしている + (たとえば, メーリングリスト専用のドメインに ``virtualdomains'' を使っている) + のなら, \longprogramopt{with-mail-gid}=\var{mailmanユーザのグループのGID} + を使わなければならないでしょう. + これは, リストのエイリアスを \file{\~{}alias} に入れることとは両立しません. + こういうエイリアスは, + \code{mailman-リスト名*} を転送するものになってしまいます. + + +\item システムにユーザ \code{mailman} があると, エイリアス + \code{mailman-owner} は \file{\~{}mailman} の中でだけ動作します. + \file{\~{}mailman} ディレクトリの中で \program{touch .qmail-owner} すると, + このエイリアスを作成できます. + + \emph{NB:} かわりに, 私がより良い解決策かと思うのが, \program{chown + root \~{}mailman} をすることで, こうすると qmail は \code{mailman} + を, メールを配送できるユーザとみなさなくなります + (``man 8 qmail-getpw'' を見てください)\footnote{訳注: + \code{mailman} ユーザのホームディレクトリが存在しない場合 + (「グループとユーザの追加」の節の手順のとおりにするとそうなります) も, + qmail は \code{mailman} を, メールを配送できるユーザとみなしません.}. + +\item 関連する話題として, メーリングリストのどれかと同じ名前のユーザがあると, + \samp{-} があるリスト名で問題が起きる, というものがあります. + そのユーザのホームディレクトリに \file{.qmail} リダイレクションファイルを置いても, + Mailman のラッパを正しい GID で呼び出せないため, 動作しません. + 解決策は, \file{/var/qmail/users/assign} ファイルに次のような行を入れることです: + +\begin{verbatim} + +zope-:alias:112:11:/var/qmail/alias:-:zope-: + . +\end{verbatim} + + これは, リスト名が \code{zope-users} などである場合です. + + \emph{NB:} かわりに, リストを仮想ドメインで扱うことにして, + \file{/var/qmail/control/virtualdomains} ファイルを使って + この仮想ドメインを \code{mailman} ユーザで管理させることもできます. + +\item \emph{BN:}受け取るメッセージを \code{mailman} 以外のユーザで配送するときは, + そのユーザが \file{\~{}mailman} にアクセスできるようになっていることが必須です. + \file{\~{}mailman} にグループ書き込み権限があって, + setgid ビットがセットしてあることを確かめます. + そして, 配送するユーザを \code{mailman} グループに入れますが, + ほかのユーザは \file{\~{}mailman} にアクセスできなくしてもよいでしょう. + WWW サービスについても同じようにできます. + + とにかく, すべてのメールを扱う仮想メールサーバをつくるのが最善のやりかたです. + \emph{NB:} たとえば, 仮想メールサーバ用に + 自分の IP アドレスを指す DNS "A" レコードを追加した上で, + \file{/var/qmail/control/virtualdomains} ファイルに + \code{lists.kva.hu:mailman} という行を, + \file{/var/qmail/control/rcpthosts} ファイルに + \code{lists.kva.hu} という行を, それぞれ追加します. + ``virtualdomains'' を変更したら, + qmail-send に HUP シグナルを送るのを忘れないようにしてください. + これで, lists.kva.hu 宛のすべてのメールは + mail.kva.hu の mailman ユーザに届くようになります. + + それから, エイリアスを作成します: + +\begin{verbatim} + .qmail => mailman@...へのメール + .qmail-owner => mailman-owner へのメール +\end{verbatim} +%% [池田] 仮想メールサーバにした場合, mailman*@... は mailman-mailman*@.. +%% に配送されるので, 上記のエイリアスは不要では? + + リストのエイリアスについては, 次のように手動で作成することもできます: + +\begin{verbatim} + .qmail-list => 'list' リストへの投稿 + .qmail-list-admin => 'list' の管理者への投稿 + .qmail-list-request => 'list' への要求 + など +\end{verbatim} + + あるいは, (上のように, lists.kva.hu を仮想で使っているときは) + リストエイリアスの自動把握をすることもできます. Mailman のソース配布物にある + \file{contrib/qmail-to-mailman.py} を見てください\footnote{訳注: + qmail-to-mailman.py は, 仮想メールサーバでないアドレスにも使えるでしょう.}. + \file{\~{}mailman/.qmail-default} を変更して, 次のものを含めます: + +\begin{verbatim} + |preline /path/to/python /path/to/qmail-to-mailman.py +\end{verbatim} + + すると, 新しいリストを自動的にみつけてくれるようになります. + +\item localhost がメールをリレーできるように気をつけなければいけません. + qmail を inetd と tcpenv を通じて起動しているのなら, + \file{/etc/hosts.allow} につぎのような行が必要です: + +\begin{verbatim} + tcp-env: 127. 10.205.200. : setenv RELAYCLIENT +\end{verbatim} + + ここで 10.205.200. は, 自分の IP アドレスブロックです. + tcpserver を使っているのなら, \file{/etc/tcp.smtp} ファイルに + 次のようなものが必要です: + +\begin{verbatim} + 10.205.200.:allow,RELAYCLIENT="" + 127.:allow,RELAYCLIENT="" +\end{verbatim} + +\item \emph{BN:} \file{/var/qmail/control/concurrencyremote} + の値は, 常識的な範囲で増やせば, メッセージの送出がより速く動作するようになります. + ただし, システムがさばける数 %% (many if not most cannot) ??? + だと分かっていない限り, + この値は 120 より大きくしてはなりません. + +\item qmail とリレーの設定についてのさらなる情報は, qmail の文書にあります. +\end{itemize} + +\emph{BN:} 最後に, リストのエイリアスを生成するスクリプトを挙げておきます +(なんらかの理由で, \file{contrib/qmail-to-mailman.py} +を使って自動的にエイリアスを拾い出すことができなかったり, そうしたくないときに使います): + +Mailman 2.0 系列のためのスクリプト: + +\begin{verbatim} +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo カレントディレクトリに $i へのリンクを作っています... + echo "|preline /home/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-admin + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-$i-owner + echo "|preline /home/mailman/mail/mailman mailowner $i" > .qmail-owner-$i + echo "|preline /home/mailman/mail/mailman mailcmd $i" > .qmail-$i-request +fi +\end{verbatim} +% $ - emacs turd + +\begin{notice}[note] +以下のスクリプトは, 新たにインストールした Mailman 2.1 のためのものです. +Mailman 2.0 からアップグレードするユーザだと, ディレクトリを +\file{/usr/local/mailman} から \file{/home/mailman} に変えたがるかもしれません. +これをはっきり指定するには, % ??? +コンパイルのときに \program{configure} に +\longprogramopt{prefix} オプションを渡します. +\end{notice} + +\begin{verbatim} +#!/bin/sh +if [ $# = 1 ]; then + i=$1 + echo カレントディレクトリに $i へのリンクを作っています... + echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i + echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin + echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces + # 次の行は VERP 用 + # echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces-default + echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confirm + echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join + echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave + echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner + echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-request + echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe + echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe +fi +\end{verbatim} +% $ - emacs turd + +\subsubsection{VERP についての情報} + +上記の 2.1 用エイリアス生成スクリプトでは, VERP 用の行がコメントアウト +してあるのに気づいたことでしょう. VERP に関心があるのなら, 2つの選択 +肢があります. 一つめは Mailman に VERP 書式化をおこなわせるものです. +これを有効にするには, 上のスクリプトでコメントを外し, \file{mm_cfg.py} +ファイルに次の行を加えます: + +\begin{verbatim} + VERP_FORMAT = '%(bounces)s-+%(mailbox)s=%(host)s' + VERP_REGEXP = r'^(?P<bounces>.*?)-\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$' +\end{verbatim} +% $ - emacs turd + +別の選択肢として, SourceForge にあるパッチも使えます. 次の場所にあります: + +\url{http://sourceforge.net/tracker/?func=detail\&atid=300103\&aid=645513\&group_id=103} + +このパッチは現時点では, テストが充分とは言えないので, +開発者や qmail についてよく分かっている人向きでしょう. 聞くところによると, +このパッチは qmail とより調和するアプローチで, 効率を大きく改善させるとのことです. + +\subsubsection{仮想メール サーバ} + +\ref{qmail-issues} 節でも仮想メールサーバについては触れましたが, +テスト中のパッチが以下の場所にあります: + +\url{http://sf.net/tracker/index.php?func=detail\&aid=621257\&group_id=103\&atid=300103} + +念のため. このパッチも, qmail のインストールについてよく分かっている人向けです. + +\subsubsection{更なる情報} + +メッセージフッタの変更についての情報に関心があるようなら, +Norbert Bollow が Mailman と qmail について書いたものがあります. 次の場所にあります: + + \url{http://mailman.cis.to/qmail-verh/}\footnote{訳注: + 翻訳時点ではアクセスできませんでした.} + +\section{サイトのデフォルトを点検\label{customizing}} + +Mailman には沢山のサイト全体の設定オプションがありますので, ここで点検し, +必要に応じて変更してください. +オプションのいくつかは Mailman があなたの環境でどう動作するかを制御し, +あるいは新規に作成したリストのデフォルトを選びます\footnote{ +一般的に, ここで変更したリストのデフォルトは既に作成済みのリストには +適用されません. リストが作成された後に変更を加えるには, ウェブインタフェース +を使うか \program{bin/withlist} や \program{bin/config_list} のような +コマンド行スクリプトを使います.}. +またシステムチューニングのパラメータや統合のオプションがあります. + +\file{\var{\$prefix}/Mailman/Defaults.py} ファイルにサイト全体の +デフォルトの全部が入っています. しかし, \strong{絶対} このファイルを +変更してはいけません. その代わり, 同じディレクトリにある, +\file{mm_cfg.py} ファイルを変更してください. \file{Defaults.py} に +入っているのと違うものだけ \file{mm_cfg.py} に書き加えればよいだけです. +将来 Mailman をバージョンアップする時に, \file{mm_cfg.py} が書き換えられる +ことはありません. + +\file{Defaults.py} ファイルにはコメントが沢山書いてあります. そこで +オプションをここで説明することはしません. \file{Defaults.py} と \file{mm_cfg.py} +はどちらも \ulink{Python}{http://www.python.org} ファイルなので +Python の文法を守るようにしないといけません. でないと Mailman は動きません. + +\begin{notice}[note] +\var{HOME_DIR} と \var{MAILMAN_DIR} 変数を変えては \strong{いけません}. +これらは \program{configure} スクリプトで自動的に設定されます. +もし変えると Mailman のインストールが壊れます. +\end{notice} + +\file{mm_cfg.py} の変更は \ref{building} 節で Mailman を +インストールしたときのユーザでおこなう必要があります. + +\section{サイト全体のメーリングリストを作る} + +Mailman とメールサーバの統合を完成させたら, 次に ``サイト全体'' の +メーリングリストを作る必要があります. これはパスワード備忘通知の発信者 +として現れるものであり, Mailman を正しく運用するのに必要なものです. +通常, これは \code{mailman} という名前のリストですが, 変更する必要が +ある場合は, \file{mm_cfg.py} の中で \var{MAILMAN_SITE_LIST} 変数を +変更してください. 次のプロンプトに続くコマンドでこのサイトリストを +作成することができます. + +\begin{verbatim} + % bin/newlist mailman +\end{verbatim} + +ここで, サイトリストの設定をします. これの助けになるように, +サイトリストの便利なひな形が \file{data/sitelist.cfg} に作って +あります. このひな形の設定オプションについて見ておいてください. +\file{sitelist.cfg} ファイルに名前が出ていないオプションについては +変更されないことも注意してください. + +このひな形を適用するには次のようにします: + +\begin{verbatim} + % bin/config_list -i data/sitelist.cfg mailman +\end{verbatim} + +\file{sitelist.cfg} のオプションを適用の後で, リストの管理ページで +設定を見ておくことを忘れないでください. +ください. + +サイトリストには自分自身を登録しておいてください. + +\section{Cron の設定} + +多くの Mailman の仕事は定常的なスケジュールで発生します. そのため, +正しい時刻に正しいプログラムを実行するよう \program{cron} を設定しなければ +なりません\footnote{以前のバージョンから更新するときには, 新しい +crontab を入れないといけないかもしれません. しかし, 複数の Mailman を +インストールしている場合には注意が必要です. crontab を変更すると +他の平行した Mailman を壊すかもしれません.}. + +もし, あなたの crontab が \programopt{-u} オプションをサポートして +いたら, root になって次のステップを実行してください. +次のコマンドを実行して \file{\var{\$prefix}/cron/crontab.in} を +crontab のエントリに入れます. + +\begin{verbatim} + % cd $prefix/cron + % crontab -u mailman crontab.in +\end{verbatim} + +もし, \longprogramopt{with-username} オプションを使っていたら, \programopt{-u} +の引数には \code{mailman} の代わりにそのユーザ名を使います. +もし, crontab が \programopt{-u} オプションをサポートしていなければ, +次のようにしてください: + +\begin{verbatim} + % cd $prefix/cron + % su - mailman + % crontab crontab.in +\end{verbatim} + +\section{Mailman の qrunner を起動する} + +Mailman は全てのメール配送に ``qrunner'' と呼ばれるプロセスを使います. +\var{\$prefix} に移動して, 次のコマンドを実行することで qrunner を +起動する必要があります: + +\begin{verbatim} + % bin/mailmanctl start +\end{verbatim} + +システムをリブートするたびに Mailman を起動したほうがよいでしょう. +実際にどうするかは使用するオペレーティングシステムに依存します. +OS が \program{chkconfig} コマンドをサポートしていれば (例えば Red Hat +や Mandrake の Linux) 次のようにしてください (Mailman の +インストールディレクトリから, root になって): + +\begin{verbatim} + % cp scripts/mailman /etc/init.d/mailman + % chkconfig --add mailman +\end{verbatim} + +\file{/etc/init.d} はシステムによっては \file{/etc/rc.d/init.d} かも +しれません. + +Gentoo Linux では次のようにします: + +\begin{verbatim} + % cp scripts/mailman /etc/init.d/mailman + % rc-update add mailman default +\end{verbatim} + +Debian ではこうするとよいでしょう: + +\begin{verbatim} + % update-rc.d mailman defaults +\end{verbatim} + +\program{chkconfig} をサポートしない \UNIX{} では次の一連のコマンド +を試してみるとよいかもしれません: + +\begin{verbatim} + % cp scripts/mailman /etc/init.d/mailman + % cp misc/mailman /etc/init.d + % cd /etc/rc.d/rc0.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc1.d + % ln -s ../init.d/mailman K12mailman + % cd ../rc2.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc3.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc4.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc5.d + % ln -s ../init.d/mailman S98mailman + % cd ../rc6.d + % ln -s ../init.d/mailman K12mailman +\end{verbatim} + +\section{ホスト名の設定をチェックする} + +\file{Defaults.py} の中の \var{DEFAULT_EMAIL_HOST} と \var{DEFAULT_URL_HOST} +をチェックしてください. 変更が必要な場合は \file{Defaults.py} で \strong{なく} +\file{mm_cfg.py} に書きます. +また, どちらかの値を変更したときには, \file{mm_cfg.py} の変更の後に, +次のように追加してください. + +\begin{verbatim} + add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) +\end{verbatim} + +もし既に作成したリストがあったら, \program{bin/fix_url.py} を使って +ドメイン名を変更してください. + +\section{サイトパスワードの作成} + +\program{bin/mmsitepass} スクリプトを使用すると, コマンドラインから +2つのサイト全体のパスワードを作成できます. +一つ目は, ``サイトパスワード'' でシステム上でパスワードが必要の +場合はどこでも使うことができます. サイトパスワードはどのリストの +管理ページへも入ることができますし, どのユーザとしてもログインできます. +Unix システムでの \code{root} を考えてください. このパスワードは +賢く考えて選んでください. + +2番目のパスワードはサイト全体の ``リスト作成'' パスワードです. +これを使うと, サイトパスワードの全ての特権を与えずに, 新しいリストを +作成するだけの権限を持たせることができます. +もちろん, サイトパスワードでも新しいメーリングリストを作成できますが, +リスト作成パスワードは特別の役割だけに限定するものです. + +サイトパスワードの設定には次のコマンドを使います: + +\begin{verbatim} + % $prefix/bin/mmsitepass <あなたのサイトパスワード> +\end{verbatim} + +リスト作成パスワードの設定は次のコマンドを使ってください: + +\begin{verbatim} + % $prefix/bin/mmsitepass -c <リスト作成パスワード> +\end{verbatim} + +リスト作成パスワードを設定しなくても結構ですが, サイトパスワードは +必要になるはずです. + +\section{初めてリストを作成する} + +Mailman を使うに当たってリストを作成したり設定したりといった詳しい情報 +については, Mailman リスト管理マニュアルを参照してください. +ここでは, ウェブインタフェースを使って最初のメーリングリストを作成 +するための簡単なガイドを説明します: + +\begin{itemize} +\item まず URL \code{http://my.dom.ain/mailman/create} を開いてください. + +\item 画面に出ている指示に従ってフォームに記入して, ``リスト作成者の + パスワード'' のところに \ref{customizing} 節で作成した + パスワードを入れてください. 自分のメールアドレスを + ``リスト管理者アドレスの初期設定'' のところに入れ, + ``「リスト作成完了」をメールで管理者に知らせますか'' で ``はい'' を + 選んでください. + +\item ``リストを作成する'' ボタンをクリックしてください. + +\item Mailman からあなた宛に新しいメーリングリストが作成されたことを + メールで知らせますのでチェックしてください. + +\item 確認のウェブページか Mailman が送信したメールに書かれたリンクを + たどって, リストの管理ページへ行って下さい. たいがいは, URL は + \code{http://my.dom.ain/mailman/admin/mylist} みたいになってる + はずです. + +\item リストのパスワードを入れて, ``ログイン...'' をクリックします. + +\item ``会員管理'' をクリックし, 続いて ``まとめて入会登録'' へ行って + ください. + +\item 大きいテキスト入力エリアに自分のメールアドレスを入れ, + ``変更を送信する'' をクリックしてください. + +\item 自分のメールソフトで, \code{mylist@my.dom.ain} 宛てにメールを + 出してください. 1,2分のうちに, Mailman 経由で自分のメールが返って + 来るでしょう. +\end{itemize} + +おめでとう! あなたの最初のメーリングリストの設定とテストが完了しました. +何か問題が起こったら, \ref{troubleshooting} 節を見てください. + +\section{トラブルと対策\label{troubleshooting}} + +もし, Mailman の実行で問題が発生したら, まず以下の「一般的な +問題」の節をチェックしましょう.もし,問題がそこに含 +まれていなければ,\ulink{オンラインヘルプ}{http://www.list.org/help.html} +を見てください. そこから, \ulink{FAQ}{http://www.list.org/faq.html} +と \ulink{インタラクティブな FAQ ウィザード}{http://www.python.org/cgi-bin/faqw-mm.py} +へ行くことができます. + +それから,システムの syslog と, Mailman の +\file{\var{\$prefix}/logs/error} ファイルにエラーが入っていないかもチェック +しましょう. +それでも問題があれば, \email{mailman-users@python.org} メーリングリスト +\footnote{メールを投稿するにはこメーリングリストに入らないといけませんが, +リストの保存書庫は一般公開されています.} に質問を書いてください. +\url{http://mail.python.org/mailman/listinfo/mailman-users} に詳しい +案内があります. + +オペレーティングシステムや, 使用している Python のバージョン, +インストール中の Mailman のバージョンなどについての情報も +忘れずに入れてください. + +以下は, 一般的な質問と回答のリストです: +Here is a list of some common questions and answers: + +\begin{itemize} + +\item \strong{問題:} Mailman の ウェブページが全て 404 File not found エラーに + なります. + + \strong{解決法:} ウェブサーバの設定で Mailman の CGI コマンドを正しく + 扱えるように設定できていません. 以下を確認: + + \begin{enumerate} + \item ウェブサーバで \file{\var{\$prefix}/cgi-bin} に正しく許可 + (パーミッション) を設定する. + + \item ウェブサーバを正しく再起動する. + \end{enumerate} + + ウェブサーバの説明書をよく読んでどうしたらよいか調べてください. + +\item \strong{問題:} Mailman のウェブページが全て "Internal Server + Error" になります. + + \strong{解決法:} 間違ったユーザまたはグループを使って CGI を + 実行しようとしている可能性があります. ウェブサーバのログをチェックして + ください. 例えば以下のような行があったら, + + \begin{verbatim} + Attempt to exec script with invalid gid 51, expected 99 + \end{verbatim} + + Mailman を再インストールしなければなりません. \label{building} + 節に書かれていたように, 正しい CGI グループ ID を指定して + ください. + +\item \strong{問題:} メールをリストに送ったら, リストが見つからないという + メールを受け取りました. + + \strong{解決法:} 多分, システムのエイリアスデータベースに必要な + エイリアスを登録していなかったのでしょう. あるいは, Mailman と + メールサーバの組み合わせが正しく行われていないのかもしれません. + エイリアスデータベースを更新していないか, あなたのシステムでは + \program{newaliases} を明示的に実行する必要があるのかしれません. + あなたがご利用のサーバについて\ref{mail-server}節で + 確認してください. + +\item \strong{問題:} リストにメールを送ったら, ``unknown mailer error'' + が帰ってきました. + + \strong{解決法:} メールラップで間違ったユーザまたはグループID + を使っている可能性があります. メールサーバのログをチェックして + ください. 次のような行があったら, + + \begin{verbatim} + Attempt to exec script with invalid gid 51, expected 99 + \end{verbatim} + + Mailman を再インストールしなければなりません. \label{building} + 節に書かれていたように, 正しいメールグループ ID を指定して + ください. + +\item \strong{問題:} 私は Postfix をメールサーバに使っています. + そして, メールラッププログラムは GID が違っていると不平をログに残します. + + \strong{解決法:} \file{\var{\$prefix}/data/aliases.db} ファイルの + 所有者が \code{mailman} (又は \program{configure} コマンドで使った名前) + であることを確認してください. もし \code{mailman} 以外のユーザに + 所有されている場合は, Postfix は正しいユーザでメールプログラムを + 実行しません. + +\item \strong{問題:} 私は Sendmail をメールサーバに使っています. + そして, メールをリストに送ると + ``sh: mailman not available for + sendmail programs'' というメールが返ってきます. + + \strong{解決法:} あなたのシステムでは Sendmail restricted shell + (smrsh) が使われています. メールラッププログラム + (\file{\var{\$prefix}/mail/mailman}) から smrsh で実行が許可されて + いるディレクトリにシンボリックリンクを張る必要があります. + + 一般的にこのディレクトリは \file{/var/admin/sm.bin}, + \file{/usr/admin/sm.bin}, \file{/etc/smrsh} などに設定されています. + + Debian Linux ではシステムは \file{/usr/lib/sm.bin} を作成します + が,これは間違っています. \file{/usr/admin/sm.bin} を 作ってそ + こへリンクを作成する必要があります. + 注:\program{newaliases} が吐き出すどのエイリアスもラップへの + 安全なリンクを指す必要があります. + +\item \strong{問題:} \program{configure} を呼び出すときに散らかして + しまいました. 掃除をして再インストールするにはどうしたらいいですか? + + \strong{解決法:} + + \begin{verbatim} + % make clean + % ./configure --with-the-right-options + % make install + \end{verbatim} + +\end{itemize} + +\section{プラットフォームやオペレーティング システムごとの注} + +一般に, Mailman は POSIX 準拠のシステム (Solaris, +BSD のさまざまな変種, Linux 系システム, MacOSX, +その他の \UNIX{} システムなど) でなら動作します. +Windows では動作しません. +たいていの場合, +Mailman がサポートされているプラットフォームで動作するようにするには, +この文書で説明した一般的な手順だけで充分です. +しかし, 一部のオペレーティング システムでは, +このほかに, インストールや設定の際に推奨される手順があります. + +\subsection{GNU/Linux について} + +Linux は, Mailman を実行するプラットフォームとしては, +もっとも普及しているもののようです. +Mailman を Linux で実行できるようにするためのヒントをいくつか挙げます: + +\begin{itemize} +\item ハードリンクの作成でエラーが起こったり, + 特別なセキュア カーネル (securelinux/openwall/grsecurity) を使っているときは, + Mailman のソース配布物のファイル + \file{contrib/README.check_perms_grsecurity} を見てください. + + Linux Mandrake をセキュア モードで使っているのなら, + これは役にたつでしょう. + +\item Mandrake は 9.0 あたりから gcc の実行権限を変更しています. + \code{mailman} ユーザになってビルドするのなら, + \code{mailman} が \code{cctools} グループにも所属しているようにします. + +\item Python を Linux ディストリビューションのパッケージ管理 + (例えば Redhat 系のシステムなら .rpm, Debian なら .deb) + でインストールしたのなら, + Python ``開発用'' パッケージもインストールしなければいけません. + そうしないと期待したとおりの結果になりません. + + 例えば, Debian で Python 2.2 を使っているのなら, + \code{python2.2-dev} パッケージをインストールする必要があります. + Redhat では, たぶん \code{python2-devel} パッケージが必要でしょう. + + Python をソースからインストールしたのなら, うまくいくはずです. + + 理屈はよくわかりませんが, インストールの最中につぎのようなエラーが起こるのなら, + この問題がおきていると判断してよいでしょう: + + \begin{verbatim} + Traceback (most recent call last): + File "bin/update", line 44, in ? + import paths + ImportError: No module named paths + make: *** [update] Error 1 + \end{verbatim} + + これがおこるのなら, + Python の開発用パッケージをインストールしてから + もう一度 \program{configure} と \program{make install} をやってみましょう. + あるいは, 最新バージョンの Python (\url{http://www.python.org} + で入手できる) をソースからインストールします. + + この問題は, 上記以外の Linux ディストリビューションでは + 違ったふうに表れるかもしれませんが, + 普通は \code{ImportError} として表れます. +\end{itemize} + +\subsection{BSD について\label{bsd-issues}} + +Vivek Khera によれば, 一部の BSD システムでは, +夜間のセキュリティ スキャンで setuid ファイルの変更を調べます. +setgid ディレクトリも, 変更されるとスキャン結果に現れます. +また, BSD システムでは, ディレクトリの中にファイルを作ると, +ディレクトリのグループ所有権を自動的に継承するので, +setgid ビットはなくてもいいのです. +他の \UNIX{} システムでは, ディレクトリの setgid ビットがオンになっていないと +こうはなりません. + +ディレクトリの setgid ビットをオンにせずにインストールするには, +\program{configure} を実行したあとで, +\program{make} に \var{DIRSETGID} 変数を渡せばいいです: + +\begin{verbatim} + % make DIRSETGID=: install +\end{verbatim} + +これで, インストールされるディレクトリに対する +\program{chmod g+s} コマンドが無効になります. + +\subsection{MacOSX について} + +Mailman を MacOSX で実行している人も大勢います. +ここでは, Mailman を MacOSX で実行できるようにするために集めた +情報へのポインタを挙げておきます. + +\begin{itemize} +\item Jaguar (MacOSX 10.2) には Python 2.2 がついてきます. + が, これは Python のあまり最近の安定バージョンではなく, + Mailman 2.1 を実行するのには充分ではありません. + +\item David B. O'Donnell は, Web サイトで, + 自分の MacOSX 上の Mailman 2.0.13 と Postfix の設定を説明しています. + + \url{http://www.afp548.com/Articles/mail/python-mailman.html} + +\item Kathleen Webb は, Jaguar で Sendmail を使って Mailman を実行できるように + した経験を投稿してくれました. + + \url{http://mail.python.org/pipermail/mailman-users/2002-October/022944.html} + +\item Panther サーバ (MacOSX 10.3) には Mailman が入っています; + オペレーティング システムには助けになる文書が含まれていますし, + Apple は, Mailman を MacOSX Server 10.3 で動作させる際にぶつかりそうな + 問題についての技術文書を出しています: + + \url{http://docs.info.apple.com/article.html?artnum=107889} +\end{itemize} + +Terry Allen は, 「クライアント」版の OSX や初期の版の OSX での Mailman +の実行について, 以下のような詳細な説明を提供してくれました +\hbox{\hfil ---\hss ---\hfil} + +Mac OSX の 10.3 以降では, Mailman ははじめからインストールしてあります. +Mac OSX のそれ以前の版では +[訳注: MTA として Postfix ではなく] Sendmail が入っているので, +そういうユーザは, このマニュアルの Sendmail でのインストールの節を見て, +こつをつかんでください. このマニュアルの前のほうで説明している基本的なインストール手順を, +本節で概説している手順で適当に読み換えながら, 実施します. + +Mac OSX 10.3 の「クライアント」版には, 既定ではフル機能版の Postfix が入っていません. +Postfix などの MTA を動作させる設定の説明はこの文書の範囲を超えますから, +\url{http://www.postfix.org} を見て, +Postfix が実行できるようにするこつをつかんでください. +Postfix をインストールして動作するように設定する簡単な方法としては, +Postfix Enabler を実行するというものがあります. +Mac OSX で Postfix を設定するためのスタンドアロンのツールです. +\url{http://www.roadstead.com/weblog/Tutorials/PostfixEnabler.html} +にあります. + +また, Mac OSX 「クライアント」版でも 10.1 以降なら, +Apache ウェブサーバが動作するようになっています. +「システム管理設定」を使って「共有」タブの中で有効にします. +Webmin というツールは, Mac OSX で Apache を設定するのに役立ちます. +\url{http://www.webmin.com} で手に入ります. + +Webmin では, システムのほかの機能についての設定もできます. +Postfix の設定, crontab へのジョブの追加, ユーザやグループの追加, などができます. +また, スタートアップジョブやシャットダウンジョブの追加もできます. + +OSX の標準的なインストレーションでの Mailman の要求事項として, +Python がインストールされていること, というものがありますが, +Python は既定ではインストールされていません. +そこで, 開発ツール パッケージをインストールすることをお勧めします. +このパッケージは, システムとともに提供されているかもしれません. +また, Apple Developer Connection サイト % Apple developer site ??? +\url{http://connect.apple.com} からダウンロードすることもできます. +開発ツール パッケージは, +Mailman をインストールするのにどうしても必要というわけではないのですが, +いつか他のツールが必要になったときにも役立ちそうなものではあります. +開発ツールは XCode Tools ともいいます. + +Python のバージョンは, 最低限, 2.2 でなければなりません. しかし, 2.3 をお勧めします. + +Webmin などの GUI インタフェースではなく, +OSX のコマンドラインを使ってユーザやグループを追加したければ, +ターミナル アプリケーションを開き, 以下に示すコマンドを入力します +(\samp{\#} ではじまるコメント行は, 単なる説明なので, 入力しません): + +\begin{verbatim} +sudo tcsh +niutil -create / /users/mailman +niutil -createprop / /users/mailman name mailman +# xxx は, システム上で空いているユーザ ID 番号であることに注意 +niutil -createprop / /users/mailman uid xxx +niutil -createprop / /users/mailman home /usr/local/mailman +mkdir -p /usr/local/mailman +niutil -createprop / /users/mailman shell /bin/tcsh +passwd mailman +# ここでは, 悪意のあるハッキングを防ぐため, セキュアなパスワードを与えること +niutil -create / /groups/mailman +niutil -createprop / /groups/mailman name mailman +# xxx は, システム上で空いているグループ ID 番号であることに注意 +niutil -createprop / /groups/mailman gid xxx +niutil -createprop / /groups/mailman passwd '*' +niutil -createprop / /groups/mailman users 'mailman' +chown mailman:mailman /usr/local/mailman +cd /usr/local/mailman +chmod a+rx,g+ws . +exit +su mailman +\end{verbatim} + +OSX の Apache で Mailman が使えるように設定する手順は, +[訳注: このマニュアルで説明しているのと] ほとんど同じです. +Mac OSX クライアント版の標準的な設定ファイルは +\file{/etc/httpd/httpd.conf} (これが標準の場所) あたりに格納されています. + +\ulink{AFP548.com}{http://www.afp548.com} のサイトには, +スタートアップアイテムの自動作成ツールがあり, これを使うと手間が省けます. +\url{http://www.afp548.com/Software/MailmanStartup.tar.gz} +で見つかります. + +インストールするには, このファイルを +\file{/Library/StartupItems} ディレクトリにコピーします. +ターミナルで root かスーパユーザになって, 次のものを入力します: + +\begin{verbatim} +gunzip MailmanStartup.tar.gz +tar xvf MailmanStartup.tar +\end{verbatim} + +これでスタートアップアイテムが作成されるので, +再起動すれば Mailman が開始されます. + +\end{document} diff --git a/src/mailman/messages/ja/doc/mailman-member.tex b/src/mailman/messages/ja/doc/mailman-member.tex new file mode 100644 index 000000000..8fe6e3543 --- /dev/null +++ b/src/mailman/messages/ja/doc/mailman-member.tex @@ -0,0 +1,1787 @@ +% Complete documentation on the extended LaTeX mark up used for Python +% documentation is available in ``Documenting Python'', which is part +% of the standard documentation for Python. It may be found online +% at: +% +% http://www.python.org/doc/current/doc/doc.html + +\documentclass{howto} + +% This is a template for short or medium-size Python-related documents, +% mostly notably the series of HOWTOs, but it can be used for any +% document you like. + +% The title should be descriptive enough for people to be able to find +% the relevant document. +\title{GNU Mailman - リスト会員の手引} + +% Increment the release number whenever significant changes are made. +% The author and/or editor can define 'significant' however they like. +\release{0.03+ja-0.6} +% CHANGELOG +% 0.03 Proofreading changes +% 0.02 Proofreading changes +% - proofread by Margaret McCarthy and Jason Walton +% 0.01 First draft of document +% +% CHANGELOG [ja] +% 2005-05-14 ja-0.7 ``Mailing list topics'' の節を訳す。句読点の修正。その他微修正。 +% 2004-10-08 ja-0.5 原文 CVS rev. 1.3 に追随。 +% 安田訳カタログによる訳語変更。 +% 2004-02-26 ja-0.4 誤訳の微修正。 +% 2003-10-08 ja-0.3 原文 CVS rev. 1.2 に追随。 +% 菊地訳カタログとの訳語調整。 +% 無意味な受身文の排除。 +% 2003-09-16 未訳部分の翻訳。 +% 2003-08-26 下訳。mmjp-users メーリングリストで紹介。 +% +% ja/LC_MESSAGES/mailman.po CVS rev.2.40.2.18 との訳語の相違 +% 原文 mailman.po 当訳 +% ------------------------------------------------------------------- +% closed (list) 閉鎖(リスト) 会員限定(リスト) +% message メール メッセージ +% ------------------------------------------------------------------- +% 句読点などは Pythonドキュメント翻訳プロジェクト (PyDOC-JP) +% http://www.python.jp/Zope/pythondoc_jp/ に準拠。 + +% At minimum, give your name and an email address. You can include a +% snail-mail address if you like. +\author{Terri Oda} +\authoraddress{terri(at)zone12.com} + +\date{\today} % XXX update before tagging release! +\release{2.1} % software release, not documentation +\setreleaseinfo{} % empty for final release +\setshortversion{2.1} % major.minor only for software + +\begin{document} +\maketitle + +% This makes the Abstract go on a separate page in the HTML version; +% if a copyright notice is used, it should go immediately after this. +% +\ifhtml +\chapter*{前付け\label{front}} +\fi + +% Copyright statement should go here, if needed. +% 日本語訳者: 池田 荘児 <nezumi(at)poem.co.jp> +% ... + +% The abstract should be a paragraph or two long, and describe the +% scope of the document. +\begin{abstract} +\noindent +この文書では、GNU Mailman バージョン 2.1 +のリスト会員向けインタフェースについて説明します。 +これには入会、退会、保存書庫の閲覧、会員オプションの変更、 +パスワード通知の入手などの、会員レベルの作業の説明を含みます。 +また、Mailman のリスト会員が関心を持つようなよくある質問にも答えます。 +\end{abstract} + +\tableofcontents + +% =========================================================================== +\section{はじめに} + +この文書は、Mailman 2.1 メーリングリストが提供する機能を +会員が利用できるようになるための +助けになることをめざしています。 +これには入会、退会、保存書庫の閲覧、会員オプションの変更、 +パスワード通知の入手などの、会員レベルの作業の説明を含みます。 +また、Mailman のリスト会員が関心を持つようなよくある質問にも答えます。 + +リストやサイト全体の管理についての情報は、他の文書を見てください。 + +この文書は、順番どおりに読まなくてもかまいません。 +あなたが特定の質問の答えを探しているのなら、 +適当なところまでとばして、 +役に立ちそうな他の節へのリンクをみつけてください。 + +\note{この文書を書くにあたって、 +筆者はつぎのことを前提にしています。 +まず、読者は電子メールに関する一般的な用語 +(たとえば、サブジェクト (件名) だとか、メッセージの本文だとか) +や Web に関する用語 (たとえば、テキストボックスだとか、ボタンだとか) +にはなじみがあって、 +こういった用語が何を指しているのかわかっているものとします。 +また、読者はメールソフトや Web ブラウザを充分うまく使えるようになっていて、 +「このアドレスに電子メールを送る」とか「この Web ページへ行く」とか +「フォームに記入する」とかいう指示の意味ははっきり理解できるものとします。 +こういった操作になじみがない方は、ほかの参考書などを見て、 +自分のコンピュータではどうすればよいのかを学んでおいてください。} + +% ---------------------------------------------------------------------------- +\subsection{謝辞} + +この文書のいくつかの節は、 +Mailman の CVS リポジトリにあった +Barry A. Warsaw 著『the List Administrator Manual』と、Mailman 2.1 の +組み込みヘルプメッセージに負っています。 + +この手引のその他の部分は、Terri Oda が書きました。 +Terri は彼女が Canada で参政権を得た年から +メーリングリストの面倒を見てきました +(この 2 つのことは関係ないですが)。 +彼女は現在は、Linuxchix.org や +それより小規模な若干のサイトのメーリングリストを管理しています。 +Terri のリスト管理以外の業績としては、人工生命によるスパム検出があり、 +これはテクニカルライタというよりプログラマとしての業績です。 + +Margaret McCarthy、Jason Walton、Barry Warsaw +からは、原文の校閲など多くの助けを得ることができ、 +この手引が良いものになりました。ありがとう。 + +また、この文書の日本語訳をしてくれた 池田 荘児、スペイン語訳をしてくれた +Pablo Chamorro C. に感謝します。 + +%WRITEME: More here. Do we need a license statement here? + +% ---------------------------------------------------------------------------- +\subsection{メーリングリストとは} + +メーリングリストというのは、かんたんに言うと、 +同じ情報がいちどに送れるようにするためのアドレスのリストです。 +あなたがなにかの会報を発行しているとしたら、 +会報の購読者全員の住所のリストを使うでしょう。 +電子メールのメーリングリストの場合は、 +電子メールアドレスのリストを使います。 +この電子メールアドレスは、ある話題について聞いたり話しあったりしたいと +思っているひとたちから集めます。 + +代表的な電子メールのメーリングリストには、2 種類あります。 +お知らせ用リストと話しあい用リストです。 + +お知らせ用リストは、個人やグループが多くのひとたちにお知らせを送るのに使います。 +ちょうど、会報の発行者が住所のリストをつかって、会報を発送するようなものです。 +たとえば、バンドがお知らせ用メーリングリストをつかって、 +ファンに次のコンサートについて知らせるような場合です。 + +話しあい用リストでは、複数のひとが共通の話題について話しあうことができます。 +だれでもリストにメールを送ることができ、 +送ったものはみんなに届きます。 +話しあいを司会つきにして、選ばれた投稿だけを全員に送るようにしたり、 +ごく少数のひとたちだけが全員に送れるようにしたりもできます。 +たとえば、 +模型飛行機マニアのグループで話しあい用メーリングリストをつかって、 +模型の組立てかたや飛ばしかたのこつを教えあうような場合です。 + +一般的な用語: +\begin{itemize} + \item 「投稿」とは、 + メーリングリストに送るメッセージのことを指します + (掲示板にメッセージを投稿するようなものです)。 + \item 電子メールのメーリングリストに入っているひとたちのことは、 + ふつう「会員」とか「購読者」とか言います。 + \item 「リスト管理者」というのは、 + そのリストの面倒を見るひとたちです。 + リストには、それぞれ一人かそれ以上の管理者がいます。 + \item リストには、投稿を読んでそれを会員みんなに送っていいかどうか + 決める係のひとたちがいることもあります。 + こういうひとたちを「司会者」と言います。 + \item たいてい、 + 同じサーバのソフトウェアで複数のメーリングリストが動いています。 + リストを動かすソフトウェアの面倒を見ているひとを、 + 「サイト管理者」と言います。 + サイト管理者も、なにかのリストの管理者であることが多いです。 +\end{itemize} +% ---------------------------------------------------------------------------- +\subsection{GNU Mailman} + +GNU Mailman は、 +電子メールのメーリングリストを扱えるようにするためのソフトウェアです。 +これは、一般的な話しあい用リストやお知らせ専用リストなど、 +さまざまな種類のメーリングリストに対応しています。 +Mailman は、簡単に入会や退会ができたり、 +プライバシーを護るための設定ができたり、 +一時的にリストから投稿を送るのを停められたりと、 +リスト会員に便利なさまざまな機能を備えています。 +この文書では、リスト会員向けの機能を説明しています。 + +Mailman は、リスト管理者やサイト管理者にとっても魅力的な +多くの機能を備えています。こういった機能は、リスト管理者やサイト管理者 +向けの手引で説明しています。 + +% ============================================================================ +\section{例を実際のリストにあてはめる} + +特定のリストのためのアドレスや URL が何になるのかを +いちいち説明するよりも、単に例を示したほうが分かりやすいことが +多いものです。 +そういうわけで、この文書では \email{LISTNAME@DOMAIN} +という架空のリストを例にすることがよくあります。 このリストの案内ページは +\url{http://WEBSERVER/mailman/listinfo/LISTNAME} +になります。 + +どちらも、実在のアドレスや URL ではありませんが、 +典型的なリストのアドレスや URL の形式になっています。 +それぞれのアドレスや URL のうちのリスト固有の部分には大文字を使い、 +この部分はリストごとに変わることが分かるようにしています。 +リストごとの設定が異なっていても、大文字で書いてある +箇所を実際のリストで使われている名前に置き換えることができるでしょう。 + +\begin{description} + \item [LISTNAME] リストの名前。 + \item [DOMAIN] このリストを運用しているメールサーバのドメイン名。 + \item [WEBSERVER] このリストの Web インタフェースを運用している + Web サーバの名前。これは DOMAIN と同じだったり、しばしば + 同じ計算機を指していたりもしますが、一致しなければならない + わけではありません。 +\end{description} + +実例として、あなたが mailman-users メーリングリストリストに興味があるなら、 +つぎのような置き換えができます: +LISTNAME は mailman-users、DOMAIN は python.org、WEBSERVER は mail.python.org。 +ですから、 +\email{mailman-users@python.org} メーリングリストについては、 +リスト案内ページは \url{http://mail.python.org/mailman/listinfo/mailman-users} +という URL にあります +(このアドレスと URL は、この文書に出てくるたいがいの例とは違い、 +実在のアドレスと URL です)。 + +たいていのリストでは、上に挙げたような情報はメッセージの \mailheader{List-*} +ヘッダに記してあります。 +多くのメールソフトでは、初期設定ではこのヘッダは隠れますから、 +こういった情報ヘッダを見たければ、すべてのヘッダを表示しておくように +しなければならないかもしれません。 + +% ============================================================================ +\section{Mailman のインタフェース} + +Mailman には、Web インタフェースと電子メールインタフェースという、 +2 種類のリスト会員用インタフェースがあります。 +話しあい用リストの会員の多くは、 +しょっちゅう電子メールインタフェースを使っていることになります。 +そのリストの会員みんなにメールを送るのに使う電子メールアドレス +も、これに含まれますから。 + +オプションを変えるのにどちらのインタフェースを使うかは、 +多分に好みの問題です。 +Web インタフェースで変えられるオプションのほとんど +(すべてではないですが) は、電子メールでも変えられるからです。 +ふつうは、オプションを変えるには Web インタフェースのほうが簡単です。 +Web インタフェースでは、操作の際に説明が出ますから。 +ですが、ときには電子メールインタフェースのほうを使いたがるひともいるので、 +両方のインタフェースが使えるようになっています。 + +% ---------------------------------------------------------------------------- +\subsection{Web インタフェース\label{sec:web}} +Mailman の Web インタフェースは、多くの人たちに喜ばれます。 +会員や管理者は、オプションが有効かとか、 +そのオプションでなにかできるのかを確かめるのが、 +とても簡単になりますから。 + +どのメーリングリストも、 +さまざまな Web ページでアクセスできるようになっています。 +%begin general description +なお、URL そのものはサイト管理者が設定することができるので、 +以下で説明するものとは異なるかもしれません。 +ここではもっとも一般的な設定について説明しますが、 +詳細はあなたのサイトの管理者やホスティングサービス業者に確認してください。 +%end general description + +\begin{description} + \item [リスト案内 (listinfo) ページ]\hfil + \begin{itemize} + + \item ふつうは \url{http://WEBSERVER/mailman/listinfo/LISTNAME} になる + (たとえば、 \url{http://lists.example.com/mailman/listinfo/mylist}) + + \item リスト案内ページは、 + 会員のインタフェースの出発点になります。 + %??? + 名前が分かれば、 + その LISTNAME リストの情報も手に入れられます。 + %??? + ふつうは、会員のためのほかのいろいろなページには + ここからアクセスできるので、 + 実際にはこの URL ひとつだけを知っていれば十分です。 + + \end{itemize} + + \item [会員オプションページ]\hfil + \begin{itemize} + + \item ふつうは \url{http://WEBSERVER/mailman/options/LISTNAME/EMAIL} になります + (たとえば、 \url{http://lists.example.com/mailman/options/mylist/kathy@here.com}) + + \item リスト案内ページで「退会またはオプションの変更」 + と書いてあるボタン (ページの下のほうにあります) + のそばの + テキストボックスに自分の電子メールアドレスを入力して + も、このページにアクセスできます。 + + \item 会員オプションページでは、ログインしたり、 + ログアウトしたり、 + 自分のリスト設定を変えたりできます。また、 + リストから退会したり、 + 自分のパスワードの控えをメールで送ってもらったりもできます。 + + \item \textbf{自分の会員オプションページにログインするには}: + まだログインしていなければ、 + 画面の上のほうに自分のパスワードを + 入力するテキストボックスが出ています + (パスワードがわからないときは、 + \ref{sec:getpassword}~節 へ行って + パスワードを知らせてもらう方法を調べてください)。 + 自分のパスワードをテキストボックスに入力し、 + ボタンを押します。 + + \item ログインがうまくいくと、 + 自分のリスト設定を + どれでも見たり変えたりできるようになります。 + + \end{itemize} + \item [リストの保存書庫]\hfil + \begin{itemize} + + \item ふつうは、 + リストの保存書庫が公開になっているときは + \url{http://WEBSERVER/pipermail/LISTNAME} になります。 + またリストの保存書庫の公開が限定になっているときは + \url{http://WEBSERVER/mailman/private/LISTNAME} + になります (たとえば、 + \url{http://lists.example.com/pipermail/mylist} や + \url{http://lists.example.com/mailman/private/mylist})。 + + \item リストの保存書庫のページには、 + メーリングリストに送られた投稿のコピーがあって、 + ふつうは月ごとにまとめてあります。 + 月ごとのまとまりごとに、 + 投稿が発信者順、日付順、スレッド順、件名順に並べてあります。 + +%begin general description + \item \note{Pipermail というのは、Mailman に標準で + 含まれている保存書庫作成プログラムの名前です。 + ほかの保存書庫プログラムもあります。} +%end general description + + \item 保存書庫の公開が限定になっているときは、 + 自分の登録電子メールアドレスと自分のパスワードを + 入れてログインしなければなりません + (パスワードがわからなくなったときは + \ref{sec:getpassword}~節 を見てください)。 + \end{itemize} +\end{description} + +% ----------------------------------------------------------------------------E +\subsection{電子メールインタフェース\label{sec:email}} + +どのメーリングリストにも、電子メールアドレスが +ひとそろいあって、そこへメッセージを送れます。 +メッセージを投稿するためのアドレスがひとつ、 +配送エラーを受けつけるアドレスがひとつ、そして電子メールコマンドを処理する +アドレスがいくつかあります。ある架空のメーリングリスト +\email{mylist@example.com} だと、つぎのようなアドレスがあります: + +\begin{itemize} + +\item \email{mylist@example.com} -- これは、 +リストに新たな投稿をするのに使うアドレスです。 + +\item \email{mylist-join@example.com} -- このアドレスにメッセージを送ることで、 + リストに入会の申請ができます。このとき、メッセージの + \mailheader{Subject} ヘッダ (件名) も本文も無視され、 + 誰にも読まれません。 + なお、mylist-subscribe@example.com は + この -join アドレスとおなじはたらきをします。 + +\item \email{mylist-leave@example.com} -- このアドレスにメッセージを送ることで、 + リストに退会の申請ができます。-join アドレスとおなじく、メッセージの + \mailheader{Subject} ヘッダ (件名) も本文も無視され、 + 誰にも読まれません。 + なお、mylist-unsubscribe@example.com は + この -leave アドレスとおなじはたらきをします。 + +\item \email{mylist-owner@example.com} -- このアドレスに送ったものは、 + リストの管理者と司会者に直接届きます。 + このアドレスは、リスト運営に関わる人間 (システムではなく) + に連絡をとりたいときに使います。 + +\item \email{mylist-request@example.com} -- このアドレスに送ったものは、 + 電子メールコマンドを処理するプログラムに届きます。 + 会員の登録オプションの設定などのコマンドを処理できます。 + リスト会員用の電子メールコマンドの説明は付録~\ref{a:commands} + にあります。 + +\item \email{mylist-bounces@example.com} -- このアドレスは、 + Mailman の自動配送エラー処理で使います。 + +\item \email{mylist-confirm@example.com} -- このアドレスは、 + 入会や退会の申請のための確認メッセージを処理するのに使います。 +\end{itemize} + +ほかに、-admin アドレスもあります。 +このアドレス宛てのものはリスト管理者に届きますが、 +古いバージョンの Mailman との互換性のためにあるだけなので、 +使わないほうがいいでしょう。 + +オプションを変えるには、\email{LISTNAME-request} +アドレスを使います (たとえば、 \email{mylist-request@example.com})。 + +コマンドは、メッセージのサブジェクト (件名) にも、本文にも書けます。 +コマンドごとに改行を入れなければなりません。 +あなたのメールソフトがメッセージの最後に自動的に署名を付けくわえるように +なっている場合は、 +「\var{end}」(鍵括弧は書かない) を、 +コマンドの最後の行のつぎの行に書くとよいでしょう。 +\var{end} コマンドがあると、Mailman は電子メールのそれよりあとに書いて +あるものを処理しません。 + +最重要コマンドはおそらく「\var{help}」コマンドでしょう。 +このコマンドに対して Mailman は、電子メールコマンドについての有用な情報と、 +Web インタフェースについての説明を送り返すからです。 + +会員用コマンドのクイックリファレンスが、 +付録の \ref{a:commands} と \ref{a:options} にあります +(これは \var{help} コマンドの出力に若干手を加えたものです)。 + +% ============================================================================ +\section{人間と話したいんですが...\label{sec:human}} + +リストを利用するうえでなにか困ったことがあったら、 +リスト管理者の電子メールアドレスを使って、 +リストのめんどうを見ている人 (たち) に、いつでも連絡することができます。 +リスト管理者は、あなたがどうしたらいいのか教えてくれたり、 +あなたを入会させたり退会させたり、 +あなたがなんらかの理由で自分で設定を変えられないときに変えてくれたりする +かもしれません。 +ただし、忘れないでいただきたいのですが、多くのリスト管理者が +ボランティアで、自分の時間を割いてリストの運営をしているのです。 +なかにはとても忙しくて、すぐには返事ができないひともいるかもしれません。 + +そのリスト管理者の電子メールアドレスですが、 +\email{LISTNAME-owner@DOMAIN} となります。 +ここで LISTNAME はリストの名前 (たとえば mailman-users) で、 +%begin general description +DOMAIN はサーバのドメイン名 (たとえば python.org) です。 +%end general description +この電子メールアドレスは、個々の管理者の電子メールアドレスとともに、 +リスト案内ページの下部に表示してあります。 +自分のリストのリスト案内ページを見つけるにはくわしくは \ref{sec:web}~節 +を見てください。 + +% ============================================================================ +\section{入会と退会} +リスト会員は、 +入会 (参加) と退会 (脱退) さえ知っていれば用が足りることも多いです。 +そのため、どちらも自分のパスワードが分からなくてもできるようになっています。 + +% ---------------------------------------------------------------------------- +\subsection{リストに入るには (入会)\label{sec:subscribe}} + +Mailman のメーリングリストに入会するには、おもに 2 つの方法があります。 + +Web インタフェースでは: +\begin{enumerate} + \item 入りたいリストのリスト案内ページへ行きます + (これはたぶん + \url{http://WEBSERVER/mailman/listinfo/LISTNAME} + といった場所でしょう)。 + \item 「LISTNAME の購読」と見出しのあるセクションを探して、 + テキストボックスに記入します。つぎのような記入欄があります: + \begin{itemize} + \item あなたの電子メールアドレスを\emph{かならず}入力します。 + \item あなたの名前を入れることもできます。 + \item パスワードを決めることができます。 + 決めなかったときは、Mailman が自動的に決めます。 + + \warning{重要なパスワードを使わないようにしてください。 + ここで入力したパスワードは、平文のまま、 + あなたにメールで送ることがあります。} + \item リストが複数の言語に対応しているなら、 + 使う言語を選ぶこともできます。 + \note{この設定はリストへの投稿には影響しません。 + あなたの会員オプションページのように、 + リストのソフトウェアが出力する Mailman の文章が + 変わるだけです。} + \end{itemize} + \item 「入会を申し込む」ボタンを押します。 + ページが変わって、入会申請を受け付けたという表示になるはずです。 + リストの入会方針によっては、このページにさらに説明があって、 + 確認メッセージを送るのでそれに返信しなければならないと + いったことが書いてある場合もあります。 +\end{enumerate} + +電子メールインタフェースでは: +\begin{enumerate} + \item メールソフトを起動して、あなたが登録したいと思うアドレスから + メールを送れるようにします。 + \item リストの入会アドレスにメールを送ります。 + これは \email{LISTNAME-join@DOMAIN} というアドレスになります。 + メッセージのサブジェクト (件名) や本文は無視され、だれにも読まれません。 + ですからなにか書いてあってもかまいませんし、書いてなくてもかまいません。 +\end{enumerate} + +上の手順のどちらかひとつ (両方やる必要はありません) をしたあと +どういうことが起こるかは、それぞれのリストの設定によって違います。 +\begin{itemize} + \item あなたがほんとうに入会したいのかどうか、確認を求める + 電子メールが届くかもしれません。 + これは、だれかがあなたの許可なくあなたを登録してしまうのを防ぐためです。 + そのメッセージに書いてある手順にしたがって、あなたに入会の意思がある + ことを確認します。 + \item 会員限定リストへの入会だった場合、 + 司会者の承認が要ります。 + \item 司会者の承認を待って、\textit{さらに} 確認メールの + 手順にしたがって確認しなければならないかもしれません。 +\end{itemize} + +このような手順が終ると、さらに、リストへの入会を歓迎するメッセージが届くことが +あります。このメッセージには、あなたのリスト会員パスワードや、 +あなたの会員オプションを変えるための URL へのリンクなど、 +大事な情報が書いてあるので、 +保存してあとで見られるようにしておくとよいでしょう。 + +\note{入会はほかのやりかたでもできます。 +電子メールでの高度な入会コマンドについては、付録~\ref{a:commands} +を見てください。} + +% ---------------------------------------------------------------------------- +\subsection{リストから抜けるには (退会)\label{sec:unsubscribe}} + +もうリストに戻ってくることはないのでしょうか。 +休暇に入るとか、忙しくてメールを読む暇がないのでしばらく停めたいだけなら、 +退会しなくても配送だけ停めておくこともできます。つまり、 +あなたのパスワードや設定などはそのまま残しておくことができるので、 +公開限定の保存書庫にアクセスしたりするようなことはできます。 +このようにしたほうがよければ、 +\ref{sec:nomail}~節で、 +一時的にメール配送を停止するための手順を見てください。 + +ほんとうにリストから抜けたいのなら、 +Mailman のメーリングリストから退会する方法は、おもに 2 つあります。 + +Web インタフェースでは: +\begin{enumerate} + \item 抜けたいリストのリスト案内ページへ行きます + (これはたぶん + \url{http://WEBSERVER/mailman/listinfo/LISTNAME} + といった場所でしょう)。 + \item 「LISTNAME 会員の方へ」と見出しのあるセクションを探します + (ふつうはページの下のほうにあります)。 + \item 「退会またはオプションの変更」と書いてあるボタンがあります。 + ボタンのそばのテキストボックスにあなたの電子メールアドレスを + 入力し、ボタンを押します。 + \item 「退会」ボタンがあるページに変わります。 + 退会するならそのボタンを押して、表示してある手順にしたがいます。 +\end{enumerate} + +電子メールインタフェースでは: +\begin{enumerate} + \item メールソフトを起動して、あなたが退会させたいと思うアドレスから + メールを送れるようにします。 + \item リストの退会アドレスにメールを送ります。 + これは \email{LISTNAME-leave@DOMAIN} というアドレスになります。 + メッセージのサブジェクト (件名) や本文は無視され、だれにも読まれません。 + ですからなにか書いてあってもかまいませんし、書いてなくてもかまいません。 +\end{enumerate} + +上の手順のどちらかひとつ (両方やる必要はありません) をしたあと、 +あなたには確認メールが届きます。 +このメールに書いてある手順にしたがわなければ、退会が完了しません。 +これは、だれかがあなたの許可なくあなたを退会させてしまうのを防ぐためです。 +この手順に加え、 +司会者があなたの退会を承認しなければいけないときもあります。 +%begin general description +(退会に管理者の承認が要ることはあまりありませんが。) +%end general description + +手順の書いてある確認メールが届かないようなら、 +あなたの電子メールアドレスを打ち間違えていないか (退会に Web インタフェースを +使っている場合)、退会させようとしているアドレスが実際にリストに登録してある +ものと同じがどうか、を確かめます。 +安全確保上の理由から、Mailman は、 +入力したアドレスが登録してあるものかどうかに関わらず、 +まったく同じ内容の会員オプションページを表示します。ですから、 +Web インタフェースのこの部分を使ってだれがリストに入会しているかを +調べることはできませんが、 +アドレスを打ち間違えていても教えてはくれないというわけです。 + +退会の処理がすむと、 +さらにリストからの退会を知らせるメッセージが届くこともあります。 +いずれにせよ、このときから、あなたにはメッセージが送られてこなくなります。 + +確認の処理をとばしたい (たとえば、あなたのアドレスがもう使えなくなったので +退会させたい、など) ときは、かわりにあなたの会員パスワードを使って、 +オプションページにログインする (\ref{sec:web}~節を見てください) か、 +LISTNAME-request アドレスに電子メールコマンドを送る +(電子メールでの高度な退会コマンドについては、 +付録~\ref{a:commands} を見てください) +かすることで、確認を省略できます。 +パスワードが分からなくなったときは、 +\ref{sec:getpassword}~節を見てください。 + +% ============================================================================ +\section{会員パスワード\label{sec:password}} + +あなたの会員パスワードは、入会したときに、あなたが決めたか +Mailman によって自動的に決められたかのどちらかです。 +パスワードの控えは、リストに参加したときに送られてきた +歓迎メッセージに書いてあったはずです。 +また、パスワード通知を毎月おくってもらうようにもできます。 +Mailman はこのパスワードを使ってあなたを認証するので、 +会員パスワードの持ち主 (あなたのことです) とリスト管理者以外は、 +あなたの設定を見たり変えたりすることはできません。 + +\warning{重要なパスワードを Mailman 用に使わないでください。 + このパスワードは、平文のまま、あなたにメールで送ります。} + +% ---------------------------------------------------------------------------- +\subsection{自分のパスワードを知りたい\label{sec:getpassword}} +自分の会員パスワードを忘れてしまい、 +歓迎メッセージやパスワード通知も保存していなかったとしても、 +Web インタフェースを使って、いつでもパスワード通知を取り寄せることができます: + +\begin{enumerate} + \item パスワードを知りたいリストのリスト案内ページへ行きます + (これはたぶん + \url{http://WEBSERVER/mailman/listinfo/LISTNAME} + といった場所でしょう)。 + \item 「LISTNAME 会員の方へ」と見出しのあるセクションを探します + (ふつうはページの下のほうにあります)。 + \item 「退会またはオプションの変更」と書いてあるボタンがあります。 + ボタンのそばのテキストボックスにあなたの電子メールアドレスを + 入力し、ボタンを押します。 + \item 「LISTNAME のパスワード」というセクションのある + ページに変わります。 + 「パスワードをメールで送ってください」ボタンを押すと、 + 会員パスワードが電子メールであなたに送られます。 +\end{enumerate} + +これをしてもパスワード通知の電子メールが送られてこないようなら、 +正しい電子メールアドレスをタイプしたのか、またそのアドレスは +たしかにそのリストに登録してあるものなのかどうか、を確かめてください。 +安全確保上の理由から、Mailman は、 +入力したアドレスが登録してあるものかどうかに関わらず、 +まったく同じ内容の会員オプションページを表示します。ですから、 +Web インタフェースのこの部分を使ってだれがリストに入会しているかを +調べることはできませんが、 +アドレスを打ち間違えていても教えてはくれないというわけです。 + +電子メールインタフェースを使っても、パスワード通知を取り寄せることができます: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に、\var{password} コマンドを + 書いた電子メールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + + リストに登録していないアドレスからメールを送るのなら、 + \nolinebreak{\var{password~address=アドレス}} + というコマンドを書いて、 + 登録アドレスを指定することもできます。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{自分のパスワードを変えるには} + \warning{重要なパスワードを使わないでください。 + このパスワードは、平文のまま、あなたにメールで送ります。} + +Web インタフェースでは: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + + \item ページの右側の、パスワード変更のテキストボックスを探します。 + そして、それぞれのテキストボックスにあなたの新しいパスワードを + 入力し、「パスワード変更」というボタンを押します。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストのパスワードを変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +電子メールインタフェースでは: +\begin{enumerate} + + \item \email{LISTNAME-request@DOMAIN} に、 + \nolinebreak{\var{password~元のパスワード~新しいパスワード}} + というコマンドを書いた電子メールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + + リストに登録していないアドレスからメールを送るのなら、 + 新しいパスワード の後に \var{address=アドレス} + を書いて、 + 登録アドレスを指定することもできます。 + + たとえば、\email{kathy@here.com} が \var{mylist} + メーリングリストでの自分の会員パスワードを + \var{zirc} から \var{miko} に変えたいが、メールを職場のアドレス + \email{kathy@work.com} から送っているときは、 + 彼女は \email{mylist-request@example.com} に、件名を + \nolinebreak{\var{password~zirc~miko~address=kathy@here.com}} + としたメッセージを送ればよいわけです。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{パスワード通知 を 送ってもらう +ようにしたり、停めたりするには (パスワード通知オプション)} +パスワード通知の電子メールを毎月送ってほしくないのであれば、 +会員オプションページで停めることができます +(パスワードをすぐに知りたければ、いつでもメールで取り寄せることができます。 +手順は \ref{sec:getpassword}~節を見てください)。 + +Web インタフェースでは: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「このリストからのパスワード通知を受け取りますか?」 + というセクションを探し、設定を好きなように変えます。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストの設定を変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +電子メールインタフェースでは: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に、 + \var{set~reminders~on} あるいは \var{set~reminders~off} + というコマンドを書いた電子メールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + + \item 「on」にすると通知が送られるようになります。 + 「off」にすると通知が送られないようになります。 +\end{enumerate} + +% ============================================================================ +\section{メールの配送のしかたを変える} +% ---------------------------------------------------------------------------- +\subsection{メール配送 を 停止したり、再開 +したりするには (メール配送オプション)\label{sec:nomail}} + +退会したくはないけれど、 +リストからメッセージを送ってもらうのを +一時的に停めたいこともあるかもしれません。 +メール配送を停止すれば、メッセージは送られてこなくなりますが、 +会員のままでいられるので、 +あなたのパスワードなどの設定は残しておけます。 + +これはいろいろな場合に便利なことがあります。 +たとえば、あなたが休暇に入ったり、 +とても忙しくなって余計なメールを読む暇がなくなったりして、 +しばらくリストを離れなければならないときです。 +またたとえば、 +投稿を会員からのものに限るようになっているリストは多いですが、 +あなたがおもに複数のアドレスからメールを送っている +(たとえば自宅のアドレスのほかに旅行中のアドレスもある) のなら、 +複数のアドレスで入会しておいて、 +そのうちのひとつだけでメールを受け取るようにしておきたいでしょう。 +あるいはたとえば、リストの投稿量がたいへん多くて、 +メールで受け取っていたのでは +あなたのメールボックスがあふれてしまいそうなときに、 +リストから抜けずに公開限定の保存書庫で読む、といったことにも使えます。 +まず入会し、メール配送を停止し、 +自分のパスワードと電子メールアドレスで保存書庫にログインすればいいのです。 + +Web インタフェースで配送を停止したり有効にしたりするには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「メール配送」 + というセクションを探し、メールを送ってもらうのを停めるときは + 「停止」、送ってもらうときは「有効」を選びます。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストの設定を変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +電子メールインタフェースで配送を停止したり有効にしたりするには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~delivery~off} または \var{set~delivery~on} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 「off」にすると投稿は送られてこなくなります。 + 「on」にすると再開できます。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{メッセージを 重複して 受け取らない +ようにするには (重複オプション)\label{sec:nodupes}} + +Mailman はメッセージの重複を完全に停められるわけではありませんが、 +この機能はすこしは役に立つでしょう。 +重複して受け取ってしまう主な原因としては、 +送信者が「全員に返信」機能を使って、 +メールをリストと個人の両方に送ってしまう、というものがあります。 +こういったメッセージを受け取りたくない人のために、 +Mailman では、あなたのアドレスが \mailheader{To} ヘッダや +\mailheader{CC} ヘッダに入っていないか調べるように設定できます。 +あなたのアドレスがこういったヘッダにあれば、 +Mailman があなたにメッセージの控えを送らないようさせることができます。 +つまり、あなたは元の送信者が送ったものだけを受け取り、Mailman が +変更を加えた (たとえばヘッダやフッタをつけたり、添付を取り除いたり、 +といった) ものは受け取らないことになります。 + +これを Web インタフェースで有効にしたり無効にしたりするには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item ページの下のほうの + 「重複したメールを受け取らないようにしますか?」 + というセクションで、設定を好きなように変えます。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストの設定を変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +これを電子メールインタフェースで有効にしたり無効にしたりするには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~duplicates~on} または \var{set~duplicates~off} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 「on」にすると、あなたに送られたものの控えも送られます。 + 「off」にすると重複したものが送られないようになります。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{登録しているアドレスを変えるには\label{sec:changeaddress}} +自分の登録アドレスを変えるには、 +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「LISTNAME 会員アドレスの変更」というセクションで、 + あなたの新しいアドレスを入力します。 + \item 元のアドレスで登録しているすべてのリストの登録アドレスを + 変えたいのなら、「全部変更」チェックボックスを選択します。 + ほかのアドレスでの登録があったり、ほかのドメインのリストに + 登録しているアドレスについては、別々に変更しなければなりません。 + 「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 +\end{enumerate} + +あなたの新しいアドレスに確認のメッセージが届きます。 +そして、このメッセージに書いてある手順にしたがって確認をするまでは、 +変更はされません。 + +電子メールインタフェースでは同じことをやる方法はありませんが、 +新しいアドレスで入会しておいて元のアドレスを退会すれば、 +おおむね同じ結果になります +(入会と退会についてくわしくは +\ref{sec:subscribe}~節と \ref{sec:unsubscribe}~節を見てください)。 + +% ---------------------------------------------------------------------------- +\subsection{投稿の控え を 受け取らない +ようにしたり、 +受け取るようにしたりするには (控えなしオプション)\label{sec:getown}} +Mailman では、ふつうは自分が投稿したものの控えも送られてきます。 +そうなっていたほうがいいという人もいます。 +投稿が無事に送れたかどうか分かるし、 +自分の意見を議論の一部としていっしょに保存しておけるからだそうです。 +しかし、自分が投稿したものをわざわざまたダウンロードさせられるのを +嫌がる人もいます。 + +\note{まとめ読みで受け取っているときは、このオプションは効きません。} + +\ref{sec:getack}~節では、 +投稿に対して受領メールを送ってもらう方法を説明しているので、 +そちらも見ておくとよいでしょう。 + +これを Web インタフェースで設定するには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「重複したメールを受け取らないようにしますか?」 + というセクションを探し、自分の投稿の控えを送ってもらうなら「はい」、 + 送ってもらわないようにするなら「いいえ」に設定します。 +\end{enumerate} + +これを電子メールインタフェースで設定するには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~myposts~on} または \var{set~myposts~off}. + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 「on」にすると自分の投稿の控えも送られるようになります。 + 「off」にすると控えが送られなくなります。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{投稿がリストに届いたことを Mailman から知らせて +もらうようにするには (受領オプション)\label{sec:getack}} + +たいていのリストでは、投稿したメールがメーリングリストシステムを通過すると、 +投稿したあなたにも同じものが送られてきます。 +しかし、送られないようにしているとき +(\ref{sec:getown}~節を見てください)、 +配送を停めているとき +(Section~\ref{sec:nomail}~節を見てください)、 +%begin general description +その投稿の話題を購読しないようにしているとき +(\ref{sec:sometopic}~節を見てください)、 +%end general description +あるいはその他の理由で投稿が届いたことを特に知りたいときには、 +このオプションが役立つでしょう。 + +\note{あなたがリストに入会していないのなら、 +このオプションは使えません。 +そういうときは、リストの保存書庫を見て確認する +(リストの保存書庫が公開になっているのなら) か、 +だれかリストの会員に聞いて確認するか、 +あるいはリストに入会してこのオプションを使えるようにするか、 +のいずれかでしょう。} + +これを Web インタフェースで設定するには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「リストへの投稿に対する確認通知が必要ですか?」 + というセクションを探し、 + 自分の投稿が届いたことを知らせてもらうのなら「はい」、 + 知らせてもらわないようにするなら「いいえ」に設定します。 +\end{enumerate} + +これを電子メールインタフェースで設定するには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~ack~on} または \var{set~ack~off} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 投稿が届いたことを知らせてもらうのなら「on」、 + 知らせてもらわないのなら「off」にします。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{リストから メールが 届かないようです。 +どうしたら いいのでしょうか} +届かない理由としては、おもにつぎのようなことが考えられます: +\begin{itemize} + \item あなたが入っているどのリストにも、 + ここしばらくだれも投稿していない。 + + これを確かめるには、それぞれのリストの保存書庫 + (保存書庫があるとして) を見てまわるとよいでしょう。 + リストに保存書庫がないときは、 + ほかのリスト会員に聞いてみるとよいかもしれません + (リストの保存書庫の探しかたは + \ref{sec:web}~節を見てください)。 + + \note{リストに投稿できるかどうか調べるためだけに + 内容のないメッセージを送ってみるというのは、 + 一般に、無作法な振舞いとされます。 + リストが稼働しているかどうか調べてみたいが + リストに投稿するのにふさわしいものを書けそうにない、 + というときは、 + リストの申請アドレス (LISTNAME-request@DOMAIN) に + help のメッセージを送って稼働していることを確かめるか、 + あるいは、リスト管理者 (LISTNAME-owner@DOMAIN) に連絡をとって + リストが稼働しているかどうか尋ねるのが、無難なやりかたです。} + + \item あなたからエラーメッセージが返ってくるので、 + メーリングリストシステムがあなたへの配送を + (一時的に) 停止している。 + + あなたのメールアドレスを管理している組織が、 + メッセージをあまりにたびたびエラーにする + (Mailman に対してメッセージが送れないと知らせる) + と、Mailman はある時点で、あなたにメールを送るのを + やめてしまうようになっています。 + この機能によって Mailman では、なくなってしまったアドレス + (たとえば、ある会員がインターネットサービスプロバイダを替えたが、 + 古いアドレスを退会させるのを忘れた、など) や、 + 一時的に使えなくなっているアドレス (たとえば、 + ある会員が自分の電子メールアドレス用のスペースを + 使い切ってしまったとか、会員のメールアドレスを管理している組織で + 障害が起きているとか) + を、うまく扱えるようになっています。 + + 自分の電子メールアドレスを管理している組織で + 障害が起きているとは思っていなくても、 + まずそれを確かめてみたほうがいいです。 + 有名な Web メールサービス業者やインターネットサービスでも、 + 思ったより信頼性が低いことがありますし、 + インターネットというものは全体としてそういうものです。 + ほかのメールアカウントを持っているのなら、 + そちらから自分にテストメールを送ってみればよいでしょう。 + あるいは、知人に頼んで試しにメッセージを送ってもらうのもよいでしょう。 + とにかくそうやって、自分の登録アドレスがちゃんと使えるかどうか + 確かめます。 + + 自分への配送が停止されているせいで + 送られてこないのかどうかを確かめるには、 + あなたの会員オプションページにログイン + (どうしたらよいかは \ref{sec:web}~節を見てください) + して、自分のオプションを見ます。 + あなたへの配送が「停止」になっていたり、 + Mailman があなたの電子メールアドレスからエラーを受け取っているときは、 + このページの上のほうに注意書きが出ています。 + + メール配送を再開するには、「メール配送」というセクションを探して + 「有効」に設定すれば、またメールを受け取れるようになります。 + あなたのエラー点を消すには、いったん配送を「停止」にして、 + また「有効」にします。 + メール配送を停止したり有効にしたりする手順についてくわしくは + \ref{sec:nomail}~節を見てください。 + + \note{調べたときに「停止」になっていないとしても、 + あなたのアドレスからはエラーメッセージが送られており、 + それがまだ配送停止になるほど多くないだけかもしれません。 + しばらくしてからまた調べたほうがよいでしょう。} + + \item あなたとメーリングリストサーバとの間で通信に遅れが出ているか、 + 通信が不通になっている。 + + インターネットは、わたしたちの多くが願っているほど、 + 100\% 信頼できるものでも、 + いつも高速なものでもありません。 + ときには、メッセージがあなたに届くのに長い時間がかかることもあります。 + 特に、メーリングリストのサーバが + あなたのインターネットサービスプロバイダから遠い + (コンピュータネットワークの上でのことで、地理的な意味でではありません。 + 両方の意味を兼ねることもしばしばありますが) + ときには、すこし辛抱して待ってみてください。 + + これが原因かどうか確かめるには、 + メーリングリストサーバに ping を送ったり、 + そのサーバとあなたのコンピュータとの間のルートを + トレースしたりしてみることができます + (どうしたらよいかは、使っているシステムによってさまざまですので、 + 検索エンジンなどであなたに合ったやりかたを調べるとよいでしょう)。 + + \item メールサーバや、そのメールサーバに入っている Mailman + が正しく動作していない。 + システムがコンピュータウィルスやスパムのために + 過負荷になっていて、Mailman が稼働しているホストで障害が続いている + ようなときには、こういったことが起こることがあります。 + + これが原因かどうか調べるには、 + まず、リストの Web ページへ行ってみます。 + また、\email{LISTNAME-request@DOMAIN} に、\mailheader{Subject} + ヘッダ (件名) に「\var{help}」(鍵括弧はつけない) + といった、簡単なコマンドを書いたメッセージを送ってみます。 + すこし待っても、どちらもなにも起こらないようなら、 + 原因はこれです。 + リストかサイトの管理者に連絡をとるとよいでしょう。 +\end{itemize} + +% ============================================================================ +\section{まとめ読み} +% ---------------------------------------------------------------------------- +\subsection{リストの投稿 を まとめて +受け取ったり、一通ずつ受け取ったりするには +(まとめ読みオプション)\label{sec:digest}} + +Mailman では、投稿をまとめたものを「まとめ読み」と言っています。 +メッセージを一通ずつ受け取るのではなく、 +いちどにまとめて受け取ることができます。 +それなりに投稿量の多いリストでは、だいたい一日に 1 度、メールを送ってきます。 +リストによって、もっと度々だったり、少なかったりします。 + +\ref{sec:MIME}~節では +MIME のまとめ読みと平文のまとめ読みについて説明しています。 +そちらも見るとよいでしょう。 + +Web インタフェースでまとめ読みモードにしたり、やめたりするには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「まとめ読みモードに設定」というセクションを探します。 + + まとめ読みにまとめて送ってもらうのなら「有効」、 + 一通ずつ送ってもらうのなら「無効」に設定します。 +\end{enumerate} + +電子メールインタフェースでまとめ読みモードにしたり、やめたりするには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~digest~plain} または \var{set~digest~mime} + または \var{set~digest~off} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 投稿を一通ずつ送ってもらうのなら「off」、 + ひとつの大きなメールにまとめて送ってもらうのなら + 「plain」か「mime」にします。 + 平文のまとめ読みと MIME のまとめ読みの違いについては + \ref{sec:MIME}~節を見てください。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\subsection{MIME のまとめ読みと 平文のまとめ読み +とは。まとめ読みの種類を変えるには (まとめ読みオプション)\label{sec:MIME}} + +MIME は「多用途インターネットメール機能拡張」 +(Multipurpose Internet Mail Extensions) の略です。 +これは、単純なプレインテキストに限らずさまざまなデータを +電子メールで送るのに使います +(たとえば、飼い犬の写真を友達に送るようなときは、MIME +を使っています)。 + +MIME のまとめ読みでは、それぞれのメッセージはメッセージ内の添付となっていて、 +目次がついています。 + +平文のまとめ読みはより単純なもので、 +メールソフトが MIME に対応していなくても読みやすくなっています。 +メッセージが順番に並んでいるだけの、 +大きなテキストメッセージになっています。 + +最近は多くのメールソフトが MIME に対応していますから、 +MIME のまとめ読みがうまく読めないときだけ、 +平文のほうにすればいいでしょう。 + +\note{まとめ読みにまとめて送ってもらっていないときは、 +このオプションは効きません +(まとめ読みで送ってもらうにはくわしくは +\ref{sec:digest}~節を見てください)。} + +まとめ読みの種類を Web インタフェースで設定するには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「まとめ読みメールを受け取る形式。 + 平文またはMIMEの添付ファイル形式。」というセクションを探します。 + + MIME の形式でまとめ読みを送ってもらうときは「MIME」、 + 平文の形式でまとめ読みを送ってもらうときは「平文」に設定します。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストの設定を変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +まとめ読みの種類を電子メールインタフェースで設定するには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~digest~plain} または \var{set~digest~mime} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item 投稿を平文のまとめ読みにまとめて送ってもらうのなら「plain」、 + MIME のまとめ読みにまとめて送ってもらうのなら「mime」にします。 +\end{enumerate} + +% ---------------------------------------------------------------------------- +\section{メーリングリストの話題\label{sec:topics}} + +リストによっては、 +Mailman でいろいろな話題を扱えるように設定してあることがあります\footnote{[訳注] +Mailman 2.1.6 の時点では、 +話題の機能は日本語のメッセージに対してはうまく働きません。}。 +例えば、 Linuxchix.org の講座リストは +linuxchix 会員が開講しているいろいろな講座のための話しあい用リストですが、 +同時にいくつもの講座 +(例: 初心者向けネットワーキング、C プログラミング、\LaTeX ~文書マークアップ) +が開講することもよくあるのです。 +開講しているそれぞれの講座は、別々の話題と関連づけてあるので、 +みんな自分の取りたい講座だけを選んで受け取れます。 + +この話題はリスト管理者が設定しますが、 +投稿したものが正しい話題に入るようにするのは、投稿するひとひとりひとりの責任です。 +普通は、件名になにか語句や目印をいれるようにする +(例: [ネットワーキング] 必要なケーブルの種類は?) か、 +正しい情報の入った \mailheader{Keywords} ヘッダをつけるようにします +(初期設定では、\mailheader{Keywords} セクションを、 +メッセージ本文の最初に置くこともできますが、これはリスト管理者の設定によります)。 +なお、こういった目印では、大文字と小文字は区別されません。 +%\footnote{[訳注] いわゆる「全角」と「半角」も区別されません。} % 未実装 + +% ---------------------------------------------------------------------------- +\subsection{自分の 投稿が 正しい 話題に + 入るようにするには\label{sec:posttopic}} + +リスト管理者は、話題を登録するときに、つぎの 3 つのものを設定します: +\begin{itemize} + \item 話題の名前 + \item 正規表現 + \item 説明 +\end{itemize} + +この情報を見るには、会員オプションページにログインして +(どうしたらよいかについて詳しくは \ref{sec:web}~節を見てください)、 +気になる話題の ``詳細'' をクリックします。 + +ある話題についての投稿をするには、メッセージの \mailheader{Keywords} +ヘッダか \mailheader{Subject} ヘッダ (件名) が、 +その話題の \emph{正規表現}に一致するようにする必要があります。 +正規表現というのは、ひとつかそれ以上のものに一致するパターンのことです。 +この正規表現は、かなり複雑なものになることもありますから、 +その表現がどういうものにあたるのか見当もつかないときは、 +リスト管理者に尋ねるとよいかもしれません。 + +正規表現についてもっと知りたいというひとは、この先を読んでください。 +でもたいていは、 +Keywords や件名にどんなものを入れれば話題のパターンに一致するようになるかを、 +リスト管理者が話題の説明のところに書いてくれているはずです。 + +Mailman の話題のパターンのほとんどは、かなり単純な正規表現ですむでしょうから、 +この文書では、いくつか一般的な例を挙げるだけにします。 +正規表現はここで手短かに説明するには少々複雑すぎます。ですから、 +正規表現のしくみを知りたければ、 +他の解説を探したほうがよいでしょう。 +%% 池田: (For example, DevShed has a decent tutorial at +%% \url{http://www.devshed.com/Server_Side/Administration/RegExp/}) +%% アクセスできなくなったので訳さない。 + +正規表現と、それに一致するものの例を挙げます: + +\begin{tableii}{l|l}{}{正規表現}{一致するもの} + \lineii{zuff}{Keywords: zuff} + \lineii{zuff}{Keywords: ZUFF} + \lineii{zuff}{Keywords: Zuff} + \lineii{zuff}{Keywords: amaryllis, zuff, applesauce} + \lineii{zuff}{Subject: [zuff] Do you have the right stuff for zuff?} + \lineii{zuff}{Subject: Do you have the right stuff for zuff?} + \lineii{zuff}{Subject: What is zuff?} +\hline + \lineii{\textbackslash[zuff\textbackslash]}{Keywords: [zuff]} + \lineii{\textbackslash[zuff\textbackslash]}{Subject: [zuff] + Do you have the right stuff?} + \lineii{\textbackslash[zuff\textbackslash]}{Subject: Online zuff tutorials (was Re: [zuff] What is zuff?)} +\end{tableii} + +すこし説明します: +\begin{itemize} + \item 一致に大文字と小文字の区別はありませんから、zuff に一致するのなら + ZUFF、zuFF など、どこを大文字にしても一致します。 + \item 正規表現で特別な意味になる文字があります。 + そういう文字そのものに一致させるには、バックスラッシュ (\textbackslash) + を前につけて ``エスケープ'' しなければなりません\footnote{[訳注] + % \yen の定義。 + \def\yen{\hbox{\setbox0=\hbox{\tt Y}{\tt Y}\kern-.97\wd0\vbox{ + \hrule height.1ex width.98\wd0\kern.16ex + \hrule height.1ex width.98\wd0\kern.42ex}}} + % HTML では文字実体参照にする。これはプレインテキストにしたときうまくいかない。 + \ifhtml\def\yen{\begin{rawhtml}¥\end{rawhtml}}\fi + 日本語対応の Web ブラウザには、 + バックスラッシュ ($\backslash$) を半角の円記号 (\yen) + で表示するものもあります。なお、全角の円記号 ({\tt ¥}) + はこれとは別の文字です。}。 + 上の例でわかるとおり、[ と ] はそういう文字です + (ほかに ``.''、``?''、``*'' などがあります)。 + + バックスラッシュにはほかの使いかたもありますが、 + 話題のパターンではこの使いかたがいちばん多いようです + (正規表現をこれ以上複雑にして混乱させるのもなんですから、 + バックスラッシュのほかの使いかたについて詳しくは、ほかの文書にあたってください)。 +\end{itemize} + +% ---------------------------------------------------------------------------- +\subsection{リストの 全ての 話題を 購読したり、 一部の 話題だけを + 購読したりするには\label{sec:sometopic}} + +メーリングリストの管理者が話題を設定していれば、 +自分の受け取りたい話題だけをえらんで購読できます。 + +リストに届くメッセージすべてがほしいのなら、 +どの話題も購読しないようにしてください。 + +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「どの話題を購読しますか?」というセクションを探します。 + + なにか話題が設定してあれば、自分のほしい話題をえらびます。 + 話題をなにもえらばなければ、リストに届くすべての投稿を受け取ることになります。 +\end{enumerate} + +\ref{sec:notopic}~節 も見るとよいでしょう。ここでは、 +話題に入っていないメッセージのための設定について説明しています。 + +% ---------------------------------------------------------------------------- +\subsection{話題に 入っていない メッセージを 受け取らない +ようにするには\label{sec:notopic}} +あらかじめ設定してある話題のパターンのどれにも一致しないメッセージもあるでしょう。 +このような一致しないメッセージを受け取るか、無視するかをえらべます。 +リストに届くメッセージすべてがほしいのなら、 +どの話題も購読しないようにしてください (\ref{sec:sometopic}~節 を見てください)。 + +一部の話題だけを購読しているのなら、 +どの話題にも入っていないメッセージを受け取るか受け取らないかを選べますし、 +ごく一部の話題だけを購読することもできます。%% much the way you can choose to... ??? + +設定を変えるには、 +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「どの話題にも一致しないメッセージを購読しますか?」 + というセクションを探します。 + + 話題に入っていないメッセージを受け取りたいのなら「はい」を選びます。 + 話題に入っていないメッセージを受け取りたくないのなら「いいえ」を選びます。 +\end{enumerate} + +なんの話題も購読していないのなら、この設定は効きません。 + +% ============================================================================ +\section{そのほかのオプション} + +% ---------------------------------------------------------------------------- +\subsection{「全部変更」や「全部設定」の意味 + \label{sec:global}} + +会員オプションページにあるいくつかのオプションには、 +「全部変更」や「全部設定」というチェックボックスがあります。 +これは、オプションを変更したときに、同じアドレスで登録している +同じドメインのほかのリストについてもすべて変更するようにする、 +という意味です。 +これは、つぎのようなときに便利です: +たとえば、パスワードを全部同じにしたいとき。 +またたとえば、休暇に入るのですべてのリストのメール配送を +停止しておきたいとき。 + +% ---------------------------------------------------------------------------- +\subsection{Mailman に登録してある名前を変えるには + \label{sec:changename}} + +登録してある名前を変えるには、 +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「LISTNAME 会員アドレスの変更」というセクションで、 + あなたの新しい名前を入力します。 +\end{enumerate} + +おなじドメインの複数のリストに登録しているのなら、 +いちどにすべてのリストの設定を変えることもできます。 +「全部変更」についてくわしくは、\ref{sec:global}~節を見てください。 + +\note{会員の名前は、かならず設定しなければならないわけではありません。} + +% ---------------------------------------------------------------------------- +\subsection{使う言語を変えるには} + +Mailman は多言語対応です。 +つまり、インタフェースはさまざまな言語に翻訳されています。 +リストの管理者は、Mailman の操作にいろいろな言語を +使えるようにできます +(言語の完全な一覧は \url{http://mailman.sourceforge.net/i18n.html} +を見てください)。 リストでほかの言語が使えるようになっていれば、 +あなたは Web インタフェースなどを自分の選んだ言語で使えます。 + +\note{リストへの投稿がぜんぶあなたの選んだ言語になる、 +ということではありません。 +あらかじめ用意してある Mailman の文章が変わるだけです。 +投稿は、それぞれの投稿者が使っている言語のままです。} + +使う言語は、あなたが入会 (\ref{sec:subscribe}~節を見てください) +したときに設定してありますが、リストが複数の言語に対応していれば、 +あとで変えることができます。 + +Mailman で使う言語を変えるには、 +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 「どの言語を使いますか?」というセクションへ行き、 + ドロップダウンリストで好きな言語を選択します。 + 言語のドロップダウンリストがないときは、 + あなたの入っているリストはたったひとつの言語にしか + 対応していないということです。 +\end{enumerate} + +リストがあなたの使いたい言語に対応していないときは、 +リスト管理者 (LISTNAME-owner@DOMAIN) に連絡をとって、 +その言語を追加してもらうよう頼むこともできます。 +ただし、覚えておいていただきたいのですが、これにはすこし +作業が必要になるので、リスト管理者やサイト管理者のほうで +作業をできるだけの時間がとれないこともありえます +\footnote{[訳注] リスト管理者は、その言語で案内ページや +歓迎メッセージの内容などを用意しなければなりません。 +また、Mailman にその言語のための翻訳データが組み込まれていないときは、 +サイト管理者は Mailman に翻訳データを追加しなければなりません。}。 + +あなたの言語が Mailman に翻訳がないために使えない、ということがあれば、 +あなたの時間を翻訳のために使うことも考えていただけると、 +ありがたいです。 +詳しい情報は、\url{http://mail.python.org/mailman/listinfo/mailman-i18n} +の mailman-i18n メーリングリストで得られます。 +最新の国際化作業の状況は \url{http://www.list.org/i18n.html} でわかります。 + +\note{i18n というのは、「国際化」(internationalization) の略号としてよく使われます。 +最初の i と最後の n の間に 18 文字あるので、こう書きます。 +発音もなんとなく「internationalization」に似ていますし。} + +% ---------------------------------------------------------------------------- +\subsection{会員名簿 に 名前を出さない +ようにするには (隠れオプション)\label{sec:nolist}} + +なんらかの理由で会員名簿に自分の電子メールアドレスを出したくないのなら、 +隠すこともできます。 + +おもな理由のひとつに、受信者の承諾を得ずに大量に送られる電子メール (スパム) +の防止があります。 +初期状態では、会員名簿のアドレスは、スパム送信先アドレス収集ソフトウェア +から隠すためにぼやかしてあります。 +これでは不十分だと思うのなら、案内ページや電子メールコマンドで +取得できる会員名簿からあなたのアドレスを消してしまうのが簡単です +\footnote{[訳注] 会員名簿を会員や管理者以外に公開していないメーリングリストで、 +他の会員が十分信用できるのなら、 +スパム防止のために会員名簿からアドレスを消す必要はないです。} +(なお、このようにしても、リスト管理者はあなたのアドレスを見ることができます)。 +スパムに対して Mailman ではどんな対策ができるかについてくわしくは、 +\ref{sec:antispam}~節を見るとよいでしょう。 + +この設定を Web インタフェースで変えるには: +\begin{enumerate} + \item あなたの会員オプションページにログインします + (どうしたらよいかは \ref{sec:web}~節を見てください)。 + \item 会員リストでアドレスを非表示にしますか?」 + というセクションへ行きます。 + 名簿に名前を載せないときは「はい」、 + 載せるときは「いいえ」を選びます。 +\end{enumerate} + +この設定を電子メールインタフェースで変えるには: +\begin{enumerate} + \item \email{LISTNAME-request@DOMAIN} に + \var{set~hide~on} または \var{set~hide~off} + というコマンドを書いたメールを送ります。 + + コマンドは、メッセージの本文とサブジェクト (件名) のどちらにでも書けます + (メールコマンドの送りかたについてくわしくは、 + \ref{sec:email}~節を見てください)。 + \item あなたの電子メールアドレスを会員名簿で隠すのなら「on」、 + 隠すのをやめるのなら「off」にします。 +\end{enumerate} + +% ============================================================================ +\section{よくある質問} + +% ---------------------------------------------------------------------------- +\subsection{リストの保存書庫を見るには} +リストで投稿を保存するようになっていれば、保存書庫の Web ページへ行って +以前に投稿されたメッセージを見ることができます。 +このページはふつうはリスト案内ページからリンクされていますし、 +リストのそれぞれのメッセージの \mailheader{List-Archive} +ヘッダに URL が表示してあります +(リスト管理者がこういったヘッダをつけないようにしていなければ)。 +ただ、多くのメールソフトでは \mailheader{List-Archive} +ヘッダを隠してしまうので、こういったヘッダを見るには、まず、すべてのヘッダを +表示しておくようにメールソフトを設定しなければならないかもしれません。 + +公開になっている保存書庫は、ふつう +\url{http://WEBSERVER/pipermail/LISTNAME/} +という形の URL で、 +公開が限定になっている保存書庫は、ふつう +\url{http://WEBSERVER/mailman/private/LISTNAME} +という形の URL になります。 + +リストの Web ページの探しかたについてくわしくは、 +\ref{sec:web}~節を見てください。 + +% ---------------------------------------------------------------------------- +\subsection{受信者の承諾を得ずに 大量に送られる電子メール (スパム) に対して、 +Mailman ではどんな対策ができますか\label{sec:antispam}} + +たとえば、技術的な話題のメーリングリストの保存書庫には、 +ある分野のさまざまな質問についての答えが保存してあるでしょう。 +答えを投稿した人たちは、 +答えを探しているひとの助けになるようにと思ってそうしたので、 +自分のアドレスがまったく別の目的に使われることなど望んではいないでしょう。 +みんなが簡単に連絡をとりあえるのは素晴らしいことですが、いっぼうで、 +リストやリストの保存書庫が +スパム\footnote{[訳注] なにをスパム (spam) +と呼ぶかは人によって多少違いがあるようですが、 +最大公約数的な定義としては、 +「受信者の承諾を得ずに、 +自動的に大量の宛先に送りつけられる電子メールメッセージ」 +ということになると思います。 + +なお、本文で説明している対策のうち、投稿の制限などは、 +スパムでないいろいろな投稿を禁止するのにも使えます。} +を送る人たちに悪用されないようにもなっていてほしいものです。 + +リスト管理者の取り得る選択肢として、Mailman では電子メールアドレスを +保護するためのさまざまな設定ができるようになっています。 +これらの多くの設定は、リスト管理者がどう設定するか選べるので、 +リストごとに設定のしかたはさまざまです。 +リスト管理者は、会員を保護するとともにいろんな人に入手されないように +するため、最良の設定をしているはずです。 + +\begin{itemize} + \item 会員名簿 + \begin{itemize} + \item リスト管理者は、会員名簿を公開するか、 + リスト会員だけが見られるようにするか、 + リスト管理者だけが見ることができるかを選択できます。 + \item 会員名簿のアドレスはぼやかしてあって、 + スパム送信先アドレス収集ソフトウェアが + アドレスを収集することが難しくなっています。 + \item あなたは + 自分のアドレスを会員名簿で隠すことができます + (くわしくは \ref{sec:nolist}~節を見てください)。 + \item \note{リスト管理者は、 + いつでも全会員の名簿を見ることができます。} + \end{itemize} + + \item リストの保存書庫 + \begin{itemize} + \item リスト管理者は、保存書庫を公開するか、 + リスト会員だけが見られるようにする (限定) か、 + まったく作らないかを選択できます。 + \item Pipermail (Mailman に標準で含まれている + 保存書庫作成プログラム) + で作成される HTML 保存書庫では、 + アドレスはぼやかしてあります。 +%begin general description + ほかの保存書庫作成プログラムでも、 + アドレスを読み取りにくくするいろいろなレベルの + ぼやかし機能を持っています。 +%end general description + \item メールに「\mailheader{X-No-Archive} yes」 + ヘッダをつけて送ると、Mailman はその投稿を + 保存書庫に入れません。同様に、 + 「\mailheader{X-Archive} no」ヘッダをつけて送っても + 保存書庫に入れません。 + \warning{ほかの会員があなたの投稿を + (場合によってはあなたの電子メールアドレスも含めて) + 引用することを停められるわけではありません。} + \end{itemize} + + \item リストへの投稿の制限 + \begin{itemize} + \item リスト管理者は、 + だれがリストに投稿できるかを決めることができます。 + たいていのリストは、司会つき + (司会者や管理者がいちいち投稿をチェックする) + か、会員のみが投稿できるか、 + だれでも投稿できるか、のいずれかです。 + \item 会員のみが投稿できるようにすると、 + Mailman はほぼすべてのスパムと + 一部のコンピュータウィルスを遮断して、 + リストを通じて送られないようにします。 + そういうわけで、 + この設定はリスト管理者がよく好んで使います。 + \end{itemize} + + \item 匿名リスト + \begin{itemize} + \item リストを完全に匿名にすることもできます。 + つまり、メッセージを送る前に + ヘッダにある送信者を特定するような情報をすべて + 消すようにできます。 + \item これは本来、スパム防止のための機能ではありません + (ほかの用途があります) が、 + 使いたければこのようにも使えます。 + \end{itemize} +\end{itemize} + +もちろん、以上のような多くのアドレスぼやかし法は、 +気づいた人たちには出し抜かれてしまうので、 +保護が完璧なものとは言えないことは知っておいてください。 + +% ============================================================================ +\appendix +% ---------------------------------------------------------------------------- +\section{電子メールコマンド クイックリファレンス\label{a:commands}} +\begin{list}{}{} + \item {confirm $<$確認文字列$>$} + \begin{list}{}{} + \item + 実行を確認します. 確認文字列は必須で, 確認要求のメールに + 書かれていなければなりません. + \end{list} + + \item end + \begin{list}{}{} + \item + コマンド処理を停止します. メールソフトが自動的に + 署名を追加するのなら, これを使ってください. + \end{list} + + \item help + \begin{list}{}{} + \item + このヘルプメッセージを要求します. + \end{list} + + \item info + \begin{list}{}{} + \item + このメーリングリストについての案内を取り出します. + \end{list} + + \item lists + \begin{list}{}{} + \item + この GNU Mailman サーバの公開メーリングリストの一覧を見る. + \end{list} + + \item {password [$<$旧パスワード$>$ $<$新パスワード$>$] [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + パスワードを取り出したり変更します. 引数がなければ, この + コマンドで現在のパスワードが取り出せます. + $<$旧パスワード$>$と$<$新パスワード$>$の引数があるときには, パス + ワードを変更します. + 会員登録されたアドレス以外からメールを送っている場合は, + `address=$<$アドレス$>$' (かぎ括弧や引用符は付けないで) で + 登録アドレスを指定してください. この場合, 返信は登録された + アドレスに宛てられることに注意してください. + \end{list} + + \item set ... + \begin{list}{}{} + \item + 会員オプションを設定したり, 確認したりします. + + `set help' (引用符は付けない) で変更可能なオプションの一覧を + 見ることができます. + + `set show' (引用符は付けない) で現在のオプションを見ることが + できます. + \end{list} + + + \item {subscribe [$<$パスワード$>$] [digest|nodigest] [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + このメーリングリストに入会する. パスワードは退会やオプションの + 変更に必要ですが, もし省略した場合には自動的に生成されます. + パスワードは忘れないように定期的に通知します. + + 次の引数は `nondigest' または `digest' (引用符なしで!). + メールを発信したのとは違うアドレスを会員にしたいので + あれば, `address=$<$アドレス$>$' の形式で指定できます. + (カッコや引用符は付けないこと!) + \end{list} + + \item {unsubscribe [$<$パスワード$>$] [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + メーリングリストから退会します. もしパスワードを付ける場合, + 登録されたパスワードに一致しないといけません. パス + ワードを省略した場合には, 退会しようとするアドレスに宛てて + 確認メッセージを発送します. 退会しようとするアドレス以外 + から申請メールを出すのであれば, `address=$<$アドレス$>$' を + 指定してください. (このメールアドレスには $<$$>$ や '' を付けな + いでください!) + \end{list} + + \item {who [$<$パスワード$>$] [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + このメーリングリストの会員名簿を見る. 名簿閲覧はリスト会員に制限 + されている場合は, 見るには会員パスワードが必要です. 登録 + アドレス以外からメールを出すのなら `address=$<$アドレス$>$' で会員 + アドレスを指定してください. (このメールアドレスには $<$$>$ や '' を + 付けないでください!) + + 名簿閲覧は管理者のみに制限されている場合は, リスト管理者と + 司会者しか見ることができません. リスト管理者のパスワードか + または司会者のパスワードを付けてください. + \end{list} +\end{list} + +% ---------------------------------------------------------------------------- +\section{会員オプションコマンド クイックリファレンス\label{a:options}} + +\begin{list}{}{} + \item set help + \begin{list}{}{} + \item + この詳しい説明を取り出す. + \end{list} + + \item {set show [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + 現在のオプション設定を見る. あなたが会員登録アドレス以外 + からメールを出している場合には, 登録アドレスを + `address=$<$アドレス$>$' の形式で指定してください. (括弧や引用符を + メールアドレスに付けないように) + \end{list} + + \item {set authenticate $<$パスワード$>$ [address=$<$アドレス$>$]} + \begin{list}{}{} + \item + オプションを設定する時には, まずこのコマンドを入れておく必要が + あります. $<$パスワード$>$はあなたの会員パスワードです. 会員として + 登録したアドレス以外からメールを出している場合には, 登録アドレス + を `address=$<$アドレス$>$' の形式で指定してください. (括弧や引用符 + を付けないように) + \end{list} + + \item set ack on\\ + set ack off + \begin{list}{}{} + \item + `ack' オプションを on にすると, あなたがリストにメールを出す + 度に, 受領確認メッセージを受け取るようになります. + \end{list} + + \item set digest plain\\ + set digest mime\\ + set digest off + \begin{list}{}{} + \item + `digest' オプションがオフのときは, 投稿されたメッセージをすぐに受け取り + ます. 何通かあるいは一定期間, 投稿をまとめて読みたいとき, + これを平文形式 (RFC 1153 ダイジェスト) で受け取りたい場合には + `set digest plain' を使ってください. MIME形式のまとめ読みを + 受け取りたい場合には `set digest mime' にしてください. + \end{list} + + \item set delivery on\\ + set delivery off + \begin{list}{}{} + \item + 配送を on/off します. これは, 退会するのとは違って, 暫くの間 + Mailman がメール配送を止めるようにするだけです. これは, あなたが + 休暇をとるときなどに便利でしょう. 休暇から帰ったら, + `set delivery on' にするのを忘れないように! + \end{list} + + \item set myposts on\\ + set myposts off + \begin{list}{}{} + \item + `set myposts off' を使うとあなたがこのリストに投稿したメッセージ + と同じものは受け取らないようになります. まとめ読みをして + いる場合には無効です. + \end{list} + + \item set hide on\\ + set hide off + \begin{list}{}{} + \item + `set hide on' を使うとあなたのメールアドレスが会員名簿には + 出ないようになります. + \end{list} + + \item set duplicates on\\ + set duplicates off + \begin{list}{}{} + \item + `set duplicates off' にすると, もしあなたのアドレスが明示的に + To: または Cc: にあったら, Mailman からはあなたにメッセージを送ら + ようにします. そうすることによってあなたが重複して受け取る + 投稿を減らすことができます. + \end{list} + + \item set reminders on\\ + set reminders off + \begin{list}{}{} + \item + `set reminders off' にすることで, このリストの毎月のパスワード + 通知を受け取らないようにできます. + \end{list} +\end{list} + +\end{document} |
