メーリングリストの作り方

経済学部のメールサーバmail.econ.fukuoka-u.ac.jpではqmailというプログラムによりメール配送を行っており、普通のメールサーバではできないサービスが可能です。 たとえばひとりのユーザが無数にメールアドレスを持てる「拡張アドレス」やそれを利用してメーリングリストが手軽に作成できます。 qmailでは一般ユーザ権限だけでメーリングリストを手軽に作ることができるため、思い立ったときにすぐ同報配信のための仕組みを実現できます。 またメーリングリストの作り方はひとつではなく、テンポラリに作るものから、重装備で本格的なものまで必要と手間に応じた方法があり、適正水準なものを作成できます。 以下では、その利用の手順を簡単に説明します。

こんなことができます

授業・ゼミごとのメーリングリスト

ゼミでの補足や議論のため、メーリングリストを作るとメンバーに一斉同報ができ、なおかつその履歴を残すことができます。 たとえば、つぎのようなアドレスのメーリングアドレスを作れます。

  hayashi-semi@econ.fukuoka-u.ac.jp

読み捨て専用アドレス

最近はインターネットで「とにかく電子メールアドレスを教えろ」といった場面が増えてきました。ただ、自分にとってどうみてもメールを送ってもらっても仕方ない場合は、ゴミ箱に直結したアドレスを教えておくとわずらわしさが減らせます。たとえば、こんなアドレスも作れます。

  yigarash-trash@econ.fukuoka-u.ac.jp

WEB掲示版とリンクしたML

  メーリングリストになげたメールがWWWで掲示版として読めます。その 例 

qmail特有のメールアドレス体系について(理屈編)

■拡張アドレスとは何か?

もっとも手軽なメーリングリストの作り方(5分〜)

基本的に配送先アドレスを列挙したファイルをつくるだけ。 qmailの拡張アドレスの機能を利用するものでメールをとにかくばらまくだけの機能です。(ログの保存やコマンドなどはありません。) 単純ですが3分程度でできるので、とにかく簡単に作りたいとき向き。

 1. mail.econ.fukuoka-u.ac.jpにssh, telnetなどでログインする。
 2. 自分のホームディレクトリに.qmail-xxxxといった名前のファイルを作成する。
    xxxxの部分はメーリングリストの名称であり、適当に決めてよい(".qmail-"までは変更してはいけない。)。これにより
    アカウント名-xxxx@econ.fukuoka-u.ac.jp
    というアドレスができあがる。このアドレスがメーリングリストのアドレスであり、着信したメールは以下で書き込むアドレスに配信される。
 3. .qmail-xxxxの中に配信したいアドレスを列挙する。
    1行に1アドレスをかけばいいだけ。
 4. .qmail-xxxxというファイルの読み書き権限のチェック
    設定ファイルが他人から変更されてしまう権限(←パーミッションという)の場合 qmailは悪用をさけるため配送をしない。
    .qmail-xxxxというファイルのパーミッションが、
        -rw-r--r--
    のようになっているかどうかをたしかめ、他人が書き込める
        -rw-rw-rw-
    のようになっていたら、
        chmod 644 .qmail-xxxx
    を実行する。 

ezmlmを利用した本格的なメーリングリストの作り方

ezmlmについて mail.econ.fukuoka-u.ac.jpにはメーリングリスト自動管理プログラム ezmlmが組み込んであります。 ezmlmにより高度な管理機能をもったメーリングリストが可能となります。 'ezmlm'は、Easy ML Manager、といった意味で、メーリングリスト(以下ML) の作成、運営を手助けするものです。 アドレス一覧ファイルによるメール配付機能だけのものにするか、それ以上のことがしたい場合はシェルスクリプトなどを作成する必要がありました。 ezmlmを利用するとシェルスクリプトを組んだり、アドレス一覧を作るなどの手作業をしなくてもインテリジェントなMLが簡単につくれます。 たとえば、メンバーの自動登録、自動脱退、過去のメールの取り寄せ・インデックスの作成、ヘッダの加工なども設定ファイルを編集するだけでできあがります。 くわしくは、 http://www.jp.ezmlm.org/ をみてください。 いわゆるML管理ソフトでできることはおおかたできます。 このような機能のあるMLを作る場合は、メールサーバにログインし、コマンドにより作成します。 手順としては、

 1. ML名、記事をためる場所の決定
 2. メールサーバにログインし、ML作成コマンドを実行
 3. うまく動作しているかのチェック
 4. ユーザ登録 

という流れになります。以下順をおって説明します。

ML名、記事をためる場所の決定

まずはユーザがやっておくべきことは、メーリングリストの名称や、記事の保存場所となるディレクトリの決定です。 以下では、メーリングリスト名として、

   someuser-test@econ.fukuoka-u.ac.jp

を作る例を説明します。 このメーリングリストを運営する人のアカウント名は、someuserとします。アカウント名がsomeuserである場合は、メーリングリストのアドレスは、かならず“someuser-“ではじまります。実際に作業する際は、このsomeuserのところを自分のアカウント名に読み変えてください。 ML運営者(ここではsomeuser)のディレクトリには、MLの記事がたまってゆくとともに、someuserの権限で参加者登録や操作ができます。 記事を貯めてゆくディレクトリは、

      /home/someuser/ML/test/

ということにします。このディレクトリは自分のホームディレクトリ以下ならどこにでも作成可能ですが、メーリングリストのディレクトリをあつめておくディレクトリを作っておいた方がのちのち混乱が少ないでしょう。 まずは、UNIXにログインしたのち、

     mkdir ~/ML

を実行しておいてください。これによって、/home/someuser/MLというディレクトリが作成されます。

ML作成コマンドの実行

ためしに

  /usr/local/bin/ezmlm-make ~/ML/test ~/.qmail-test someuser-test econ.fukuoka-u.ac.jp

としてみてください(ユーザ名someuserの場合)。これで自動登録、ログの自動管理が可能なMLができあがります。このMLの宛先は、

      someuser-test@econ.fukuoka-u.ac.jp

となります。(記事、履歴は、~/ML/test/以下にたまっていく。) コマンドラインの解説をすると、

/usr/local/bin/ezmlm-make ←ML作成コマンド

  ~/ML/test                           ←記事を溜めるDirectory
      ~/.qmail-test                   ←MLを管理する.qmailファイル
          someuser-test               ←MLあてさき
              econ.fukuoka-u.ac.jp    ←ホストのアドレス

となっています。

動作テスト

ezmlmによって作成されたMLはヘルプコマンドなどを受け付けるので、それを使ってテストができます。正常に作成できていれば、応答が帰ってきます。作成したMLのヘルプは、

     someuser-test-help@econ.fukuoka-u.ac.jp

あてにメール(中身はなくてもいい)を投げます。これで、MLへの登録、脱退手続きなどを解説したメールが返送されてくるはず。これが確認できれば、作成そのものはOK.

参加者をMLに登録

メンバーの登録は、下記の2通りのやりかたがあります。

 1. メーリングリストの作成者(運営者)がメールサーバでコマンドを打って登録する
 2. 参加者自身が登録依頼のメールをMLに送る方法 

運営者によるメンバーの手動登録  ezmlmによって作成されたMLはメンバーの自動登録ができますが、すでにメンバーリストがある場合は、ezmlm-subコマンドをつかえばMLを管理しているユーザの権限で登録ができます。 1人登録する場合は

  /usr/local/bin/ezmlm-sub ~/ML/test yigarash@econ.fukuoka-u.ac.jp

とします。2名の場合は、

  /usr/local/bin/ezmlm-sub ~/ML/test yigarash@econ.fukuoka-u.ac.jp matsu@econ.fukuoka-u.ac.jp

などとします。以下同様に数が増えただけ後ろに追加していけばいいのですが、あんまり長いコマンドラインは間違えるに決まっているので、登録者が数十人程度なら、登録者リスト(listというファイル名とする)を作っておき、

  /usr/local/bin/ezmlm-sub ~/ML/test `cat list`

もっと沢山いるようであれば、メンバーのリストを作っておいて、

      foreach d (`cat memberlist`)
              /usr/local/bin/ezmlm-sub ~/ML/test $d
      end

のようなシェルスクリプトを使うと一発ですみます。 参加者自身がMLに自動登録する場合 次のようなメーリングリストの管理アドレスに向かって、空メールを投げつけるとできます。

      someuser-test-subscribe@econ.fukuoka-u.ac.jp

登録ユーザのリストは、~/ML/testにできます。脱退も同様に、

      someuser-test-unsubscribe@econ.fukuoka-u.ac.jp

とすればOK。  MLの過去の記事をメールで取り出す事ももちろんできる。

ユーザ名が付かないMLの作り方

前述の設定方法は、一般のユーザ権限だけでメーリングリストを作成する場合でしたが、そのアドレスには必ずユーザ名が付いていました。これはメールアドレスの重複を避けるためにも必要な制約ですが、メールサーバの管理をしている管理者権限ではユーザ名の付かないメーリングリストも作成可能です。 ただ、ユーザ名が付かないメールアドレスは、悪用の糸口になりえるのでユーザ権限だけでは作成できません。 (たとえば他人のアドレスを騙ったMLが作れてしまいます。) この制限はメカニズム上できないのではなくて、混乱の排除のために必要なものです。 したがって、この場合は、

  • 一般ユーザ権限でメールを貯めてゆく「入れ物」を作るところまで実行
  • 入れ物に対し、(ユーザ名のついてない)アドレスを結びつける作業を管理者に依頼
  • うまく動作しているか動作チェック
  • ユーザ登録

という流れになります。

ML名、ディレクトリなどの決定

まずはユーザがやっておくべきことは、メーリングリストの名称や、記事の保存場所となるディレクトリの決定です。 以下では、メーリングリスト名として、

   sample@econ.fukuoka-u.ac.jp

を作る例を説明します。 このメーリングリストを運営する人のアカウント名は、someuserとします。実際に作業する際は、このsomeuserのところを自分のアカウント名に読み変えてください。 ML運営者(ここではsomeuser)のディレクトリには、MLの記事がたまってゆくとともに、someuserの権限で参加者登録や操作ができます。 記事を貯めてゆくディレクトリは、

      /home/someuser/ML/sample/

ということにします。このディレクトリは自分のホームディレクトリ以下ならどこにでも作成可能ですが、メーリングリストのディレクトリをあつめておくディレクトリを作っておいた方がのちのち混乱が少ないでしょう。 まずは、UNIXにログインしたのち、

     mkdir ~/ML

を実行しておいてください。これによって、/home/someuser/MLというディレクトリが作成されます。

MLの作成コマンドの実行

先に決めたMLを作成する初期化コマンドは、

/usr/local/bin/ezmlm-make ~someuser/ML/sample ~someuser/.qmail-sample sample econ.fukuoka-u.ac.jp

となります。 このコマンド行の意味は下記のようなものです。

/usr/local/bin/ezmlm-make ←ML作成コマンド

  ~someuser/ML/sample                 ←記事を溜めるDirectory
      ~someuser/.qmail-sample         ←MLを管理する.qmailファイル
          sample                      ←MLあてさき
              econ.fukuoka-u.ac.jp    ←ホストのアドレス

~/.qmail-sampleは初期化コマンドによって自動的に作成されます。 ユーザ名が付かないMLアドレスの作成の依頼 ここから後の操作は、ルート権限が必要なので、 admin@econ.fukuoka-u.ac.jp あてに依頼してください。依頼のときに必要な情報は、最低限

  • メーリングリスト名
  • 運営者のアカウント名
  • さきほど作成した.qmailファイルの名前

です。つまり、どんなコマンドラインを打ったかをしらせてください。これらをもとにスーパーユーザは下記の設定を行います。

rootの行う作業

(1)/var/qmail/users/assignの編集

このファイルには、 ユーザ名なしアドレスと、 そのMLを管理するユーザの情報を結ぶ情報を記述します。 たとえば、さきほどユーザ権限で作成したMLをsomeuser がつかないアドレス(sample@econ.fukuoka-u.ac.jp)に結び付けるには、下記の行を追加します。

  +sample:someuser:666:666:/home/someuser:-:sample:

これで、 sample@econ.fukuoka-u.ac.jp というMLアドレスは、UID=666,GID=666で管理され、そのホームディレクトリは /home/someuser であることなどが指定されます。 /var/qmail/aliasと違うのは、aliasのほうは単一のアドレスの置き換えしかしないのにたいし、usersのほうは、 sample-help@econ.fukuoka-u.ac.jp などの拡張アドレスであっても受け付ける点です。

(2)編集結果の反映

これはsendmailにおけるnewaliasに相当する操作です。 qmailでは、

          /var/qmail/bin/qmail-newu

とします。 なお、ここから後ろの、動作チェックとメンバー登録は普通のMLと同じです。

文書履歴:五十嵐が作る。 2001/04: su.econ.fukuoka-u.ac.jpが廃止になったのにともない改訂 by yigarash
2002/01: ezmlm-sub のパスが(/var/qmail/bin → /usr/local/bin/に)変更になったのを修正。
2002/03: ezmlm-makeのパスが(/var/qmail/bin → /usr/local/bin/に)変更になったのを修正。

LDAP user to find: yigarash [auth.php:186]
LDAP Server: ldap://133.100.109.234:389 [auth.php:189]
LDAP Filter: (&(uid=yigarash)(objectClass=posixAccount)) [auth.php:200]
LDAP user search: Success [auth.php:202]
LDAP search at: ou=People,dc=econ,dc=fukuoka-u,dc=ac,dc=jp (&(uid=yigarash)(objectClass=posixAccount)) [auth.php:203]
LDAP search found single result ! [auth.php:225]
LDAP group search: Success [auth.php:266]
LDAP search at: ou=Group,dc=econ,dc=fukuoka-u,dc=ac,dc=jp (&(objectClass=posixGroup)(|(gidNumber=1125)(memberUID=yigarash))) [auth.php:267]
LDAP usergroup: www [auth.php:286]
LDAP usergroup: yigarash [auth.php:286]
LDAP usergroup: yonedacvs [auth.php:286]
LDAP usergroup: venture [auth.php:286]
LDAP usergroup: mac [auth.php:286]
LDAP usergroup: qbic [auth.php:286]
how_to_make_mailing_list_in_econ_mail_server.txt · Last modified: 2014/03/06 14:02 by yigarash
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0