exim4 関連のパッケージを確認する.
$ dpkg -l | grep exim
rc exim4 4.84-8 all metapackage to ease Exim MTA (v4) installation rc exim4-base 4.84-8 amd64 support files for all Exim MTA (v4) packages rc exim4-config 4.84-8 all configuration for the Exim MTA (v4) rc exim4-daemon-light 4.84-8 amd64 lightweight Exim MTA (v4) daemon |
上の実行結果の一番初めのカラムが"rc" の場合は「パッケージは削除されたが, 設定ファイルは残っている」状態のこと."ii" の場合は「パッケージインストール済み」状態のこと. exim 関連パッケージを設定ファイルからアンインストールする.
# apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light
# apt-get install qmail
以下のパッケージが新たにインストールされます: daemontools fastforward fgetty qmail qmail-run qmail-uids-gids runit ucspi-tcp |
# ps aux | grep qmail
root 7196 0.0 0.0 4092 632 ? Ss 17:40 0:00 runsv qmail-smtpd root 7197 0.0 0.0 4092 680 ? Ss 17:40 0:00 runsv qmail-send root 7198 0.0 0.0 4092 652 ? Ss 17:40 0:00 runsv qmail-verify qmaill 7199 0.0 0.0 4092 644 ? S 17:40 0:00 multilog t /var/log/qmail qmaill 7200 0.0 0.0 4092 700 ? S 17:40 0:00 multilog t /var/log/qmail/smtpd qmaill 7201 0.0 0.0 4092 740 ? S 17:40 0:00 multilog t /var/log/qmail/verify qmails 7202 0.0 0.0 4264 640 ? S 17:40 0:00 qmail-send root 7203 0.0 0.0 4096 628 ? S 17:40 0:00 /var/lib/qmail/bin/qmail-verify qmaild 7204 0.0 0.0 6340 1536 ? S 17:40 0:00 tcpserver -v -R -l usuzumi.ep.sci.hokudai.ac.jp -x /etc/qmail/tcp.smtp.cdb -c 20 -u 64011 -g 118 0 smtp qmail-smtpd root 7209 0.0 0.0 4224 668 ? S 17:40 0:00 qmail-lspawn |preline procmail qmailr 7210 0.0 0.0 4224 664 ? S 17:40 0:00 qmail-rspawn qmailq 7211 0.0 0.0 4212 1104 ? S 17:40 0:00 qmail-clean root 7219 0.0 0.0 14600 2248 pts/0 S+ 17:41 0:00 grep qmail |
qmail 制御ファイルに設定を書き込む. 制御ファイルは /var/lib/qmail/control/ 以下にある. それぞれの制御ファイルへ以下の情報を書き込む(今回は赤字のものを追記).
/var/lib/qmail/control/defaultdomain -> ep.sci.hokudai.ac.jp /var/lib/qmail/control/locals -> localhost usuzumi.ep.sci.hokudai.ac.jp /var/lib/qmail/control/me -> usuzumi.ep.sci.hokudai.ac.jp /var/lib/qmail/control/plusdomain -> ac.jp /var/lib/qmail/control/rcpthosts -> localhost usuzumi.ep.sci.hokudai.ac.jp |
DNS に登録がなされていないと正しく動作しないことに注意.
yellow によって, ep.sci.hokudai.ac.jp の MX を向けられている場合,
ローカル処理すべきドメイン名に ep.sci.hokudai.ac.jp を追加する.
# echo ep.sci.hokudai.ac.jp >> /var/qmail/control/locals # echo ep.sci.hokudai.ac.jp >> /var/qmail/control/rcpthosts
databytes と queuelifetime を作る.
# echo 10000000 > /var/lib/qmail/control/databytes # chmod 644 /var/lib/qmail/control/databytes # echo 259200 > /var/lib/qmail/control/queuelifetime # chmod 644 /var/lib/qmail/control/queuelifetime
設定がちゃんとされているか確認する. (詳細はqmail-showctl(8))
# qmail-showctl
それぞれのファイルには最終的に以下のように書き込まれていればよい.
/var/lib/qmail/control/databytes -> 10000000 /var/lib/qmail/control/defaultdomain -> ep.sci.hokudai.ac.jp /var/lib/qmail/control/defaulthost -> ep.sci.hokudai.ac.jp /var/lib/qmail/control/locals -> localhost usuzumi.ep.sci.hokudai.ac.jp ep.sci.hokudai.ac.jp /var/lib/qmail/control/me -> usuzumi.ep.sci.hokudai.ac.jp /var/lib/qmail/control/plusdomain -> ac.jp /var/lib/qmail/control/queuelifetime -> 259200 /var/lib/qmail/control/rcpthosts -> localhost usuzumi.ep.sci.hokudai.ac.jp ep.sci.hokudai.ac.jp |
上記の設定ファイルはサーバ入れ替え時にusuzumi => grey に変える必要がある. 詳細はサーバ入れ替え手順書を参照.
システムのアドレスを設定する(自動で以下のコマンドを実行するスクリプトalias.shがあるのでメールサーバに持ってきてルートで実行する).
# chmod u+x alias.sh # ./alias.sh
# cd /var/lib/qmail/alias # echo '&epmail' > .qmail-root # echo '&root' > .qmail-postmaster # echo '&root' > .qmail-mailer-daemon # echo '&root' > .qmail-bin # echo '&root' > .qmail-daemon # echo '&root' > .qmail-games # echo '&root' > .qmail-ingres # echo '&root' > .qmail-nobody # echo '&root' > .qmail-system # echo '&root' > .qmail-toor # echo '&root' > .qmail-uucp # echo '&root' > .qmail-usenet # echo '&root' > .qmail-anonymous # echo '&root' > .qmail-mail # echo '&epwww' > .qmail-www # echo '&epdns' > .qmail-dns # chmod 644 .qmail-*
以上により,
postmaster, mailer-daemon, bin, daemon, games, ingres,
nobody, system, toor, uucp, usenet, anonymous, mail
あてのメールは root に転送され,root あてのメールは epmail に転送される.
詳細は dot-qmail(5) .
Mailbox へ配送するために /etc/profile に以下を書き加える.
# emacs /etc/profile
MAIL="$HOME/Mailbox" MAILDROP="$HOME/Mailbox" export MAIL MAILDROP |
同様に /etc/csh.cshrc に以下を書き加える.
# emacs /etc/csh.cshrc
setenv MAIL $HOME/Mailbox setenv MAILDROP $HOME/Mailbox |
なお,各ユーザのホームディレクトリのパーミッションは
755 でないとメール配送時にエラーが出るらしい.
パッケージでqmail をインストールした場合はqmail が自動で起動されているはずだが, 手動で起動/停止/再起動させる場合はqmailctl を用いる.
# qmailctl start/stop/restart
qmail のサービスの挙動の確認にはps aux や qmailctl を用いる.
$ ps aux | grep qmail # qmailctl stat
配送テスト(ローカル配送,リモート送り出しテスト) を行う. 以下ではルートを抜け自分のアカウントで作業を行う.
自分に送る準備をする.
$ echo ./Mailbox > ~/.qmail $ touch ~/Mailbox
自分へメールを送ってみる.
hoge は自分のユーザ名に変え,以下のコマンドを実行する.
~hoge/Mailbox にメールが送られることを確認.
$ echo to: hoge | qmail-inject
確認する
$ lv ~/Mailbox
From mondo4@usuzumi.ep.sci.hokudai.ac.jp Mon Nov 30 11:24:48 2015 Return-Path: |
存在しない宛先に送ってみる. バウンスメールが~hoge/Mailbox に送られてくるのなら OK.
$ echo to: nonexisten | qmail-inject $ lv ~/Mailbox
From MAILER-DAEMON Mon Nov 30 11:34:46 2015 Return-Path: <> Delivered-To: mondo4@usuzumi.ep.sci.hokudai.ac.jp Received: (qmail 7387 invoked for bounce); 30 Nov 2015 11:34:45 -0000 Date: 30 Nov 2015 11:34:45 -0000 From: MAILER-DAEMON@usuzumi.ep.sci.hokudai.ac.jp To: mondo4@usuzumi.ep.sci.hokudai.ac.jp Subject: failure notice Hi. This is the qmail-send program at usuzumi.ep.sci.hokudai.ac.jp. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. |
他のホスト上のアカウントへ送ってみる.届いていれば OK . 届かなければ,/var/log/syslog を参照して原因を追求する.
$ echo to: hoge@gfd-dennou-org | qmail-injectもし届いていなければsyslog を見て確認.
# lv /var/log/syslog
パッケージでqmail をインストールすると, tcpserver(ucsci-tcp) が同時にインストール
されるため, pop をtcpserver から起動する(2014 年度まではinetd/xinetd で行っていた).
また, pop でメールを読む際のパスワードの暗号化をするためにapop のインストールを行う.
http://jaist.dl.sourceforge.net/sourceforge/checkpw/より,checkpw-1.03.tar.gz を取得,展開.
checkpw-1.03/INSTALL に従ってコンパイルする.
$ wget http://sourceforge.net/projects/checkpw/files/checkpw/checkpw-1.03/checkpw-1.03.tar.gz $ tar zxvf checkpw-1.03.tar.gz $ cd chekpw-1.03/ $ make # make setup check
/bin/checkapoppw ができる.
tcpserver からpop を呼び出すためには起動スクリプト /var/lib/qmail/bin/qmailctl にpop の行を追加する(qmail 等のコマンドにはPATH が通っているので, フルパスで 書く必要はないかもしれない).
# emacs /var/lib/qmail/bin/qmailctl
start 部分に以下を追記
# For POP3 sh -c "/sbin/start-stop-daemon --start --quiet --user root \ --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \ --exec /usr/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \ /var/lib/qmail/bin/qmail-popup usuzumi.ep.sci.hokudai.ac.jp \ /bin/checkapoppw /var/lib/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/lib/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &" |
stop 部分に以下を追記
# For POP3 /sbin/start-stop-daemon --user root --stop --quiet --oknodo \ --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/bin/tcpserver |
qmail を再起動
# qmailctl stop # qmailctl start
動作の確認(pop3 のプロセスがあれば問題なく起動している)
# ps aux | grep qmail
/usr/bin/tcpserver -v -u 0 -g 0 0 pop3 qmail-popup usuzumi.ep.sci.hokudai.ac.jp /bin/checkapoppw qmail-pop3d Maildir splogger pop3d 3 |
すでに ~/Mailbox へ配送するための環境変数は設定した.
pop によるメールの読み出しは EP サーバでは maildir 形式を用いる.
はじめに,環境変数 MAILDIR を設定する.
環境変数の設定は ~/Mailbox への配送でも行ったが,
bash は /etc/profile,csh は /etc/csh.cshrc に書き込む.
/etc/profile に次の 1 行を加える.
# emacs /etc/profile
MAILDIR="$HOME/Maildir/" export MAILDIR |
/etc/csh.cshrc には次の 1 行を加える.
# emacs /etc/csh.cshrc
setenv MAILDIR $HOME/Maildir/ |
次に配送テストのために一般ユーザで次の設定を行う.
maildirmake のスクリプトでディレクトリを作成する. Maildir を作成する
$ maildirmake ~/Maildir
次に ~/Maildir への配送を qmail に指示する (.qmail へ配送先ディレクトリを記述する).
$ echo ./Maildir/ >> ~/.qmail $ chmod 600 ~/.qmail
.qmail のパーミッションは,600 か 644 でなければならない.
要は,実行許可が出ていないことと
オーナー以外に書き込みが許可されていないことが要求される.
以上の作業は各ユーザごとに行わねばならないが, /etc/skel/ 以下
に, .qmail や Maildir/ を置いておけば, adduser コマンドを用いてアカウ
ントを新規に作ったときにできるホームディレクトリ内にこれらは自動で入る.
こうすることによって, 新規にアカウントを取得する一般ユーザは, 以上の作
業が不要になる.
~/Maildir/.password ファイルを作る. APOPPASSWORDの部分は 自分で考えた適切なパスワードに変えること.
$ echo 'APOPPASSWORD' > ~/Maildir/.password $ chmod 600 ~/Maildir/.password
この中身(APOPPASSWORD)が, pop でメールを読むときの認証パスワードとなる. パーミッションを600としないとpopが働かない.
grey の外のホストから pop 対応メーラー(例. Thunderbird)を用いて pop サーバを grey に指定して grey 上の自分のアカウントあてに届いたメールを読んでみる.
EPMailサーバではimap サーバソフトとして Dovecot を使用する.
Dovecot をパッケージからインストールする
# apt-get install dovecot-imapd
Dovecot の設定は /etc/dovecot/conf.d 以下のファイルで行う.
# cd /etc/dovecot/conf.d
以下のように各ファイルにおいて設定する. 必要な部分のコメントアウトを外して設定する (なお, 初めからコメントアウトされている値はデフォルトの値となっている).
# emacs 10-auth.conf
disable_plaintext_auth = no #平文でのログインを許す |
# emacs 10-mail.conf
mail_location = mbox:~/:INBOX=~/Mailbox #保存形式 |
# emacs 10-master.conf
service imap-login |
# emacs 10-logging.conf
log_timestamp = "%Y-%m-%d %H:%M:%S " |
# emacs auth-passwdfile.conf
passdb args = scheme=CRAM-MD5 username_format=%u /etc/dovecot.cram-md5 #パスワードの認証方法. dovecot.crma-md5というパスワードファイルからパスワードを読み込む |
dovecot を再起動する.
# service dovecot restart
dovecot の挙動を確認
# service dovecot status
● dovecot.service - Dovecot IMAP/POP3 email server Loaded: loaded (/lib/systemd/system/dovecot.service; enabled) Active: active (running) since 火 2015-12-01 13:55:13 JST; 2s ago Main PID: 15534 (dovecot) CGroup: /system.slice/dovecot.service ├─15534 /usr/sbin/dovecot -F ├─15536 dovecot/anvil ├─15537 dovecot/log └─15539 dovecot/config 12月 01 13:55:13 usuzumi dovecot[15534]: master: Dovecot v2.2.13 starting up for imap (cor...ed) Hint: Some lines were ellipsized, use -l to show in full. |
パスワードファイルである /etc/dovecot.cram-md5 を書く.
これが CRAM_MD5 の認証データベースファイルとなる. 以下がその書式.であり, passwd ファイルと同じ形式で書く.
[acount]:{パスワードの形式(plainなら平文,CRAM-MD5ならCRAM_MD5で暗号化されたパスワード}[PASSWORD]:[uid]:[gid]::[home] |
[acount]には自分のアカウント名.
PASSWORDが imap 用パスワード. そのまえの{}によって書き方が変わる.
[uid] と [gid] にはそれぞれ自分の uid と gid を入れる.
最後の[home]は自分のホーム領域のパス.
具体的に書いてみる. 赤く強調されているところが実際のパスワードとユーザ情報である. xxxxxxxはパスワード.
# emacs /etc/dovecot.cram-md5
# CRAM-MD5 authentication database # Entries are in form <user>:{plain}<password>:<uid>:>gid<::>Home dir< # or <user>:{CRAM-MD5}<cram_md5 password>:<uid>:>gid<::>Home dir< # Lines starting with "#" are comments mondo1:{plain}xxxxxx:40001:40001::/home/mondo1 |
# chmod 600 /etc/dovecot.cram-md5
このままだと /etc/dovecot.cram-md5 に直接見える形でパスワードが書かれてしまう.
しかし, このパスワードを暗号化して書くこともできる.
なお, これをやるときは以前に書いた{plain}でのパスワードは消すこと.
# pass=`doveadm pw -s CRAM-MD5 -p xxxxxx` # echo "mondo1:${pass}:40001:40001::/home/mondo1" >> /etc/dovecot.cram-md5
doveadm pw は引数を暗号化するコマンドである. それを用いてdovecot.cram-md5 に直接暗号化したパスワードを書き込んでいる.
/etc/dovecot.cram-md5 の所有者を dovecot にする.
# chown dovecot:dovecot /etc/dovecot.cram-md5
パーミッションを変更する.
# chmod 400 /etc/dovecot.cram-md5
CRAM_MD5 の認証データベースファイル /etc/dovecot.cram-md5 の書き込みには
root 権限が要る.
そのため imap 認証のパスワードを各ユーザが編集することはできない.
そこで apop 認証パスワード ~/Maildir/.password を読み出して
/etc/cram-md5.pwd を生成するスクリプト dovecotpwdbg
を書いた.
これを root 権限で定期的に実行すれば(遅れはあるものの)
/etc/dovecot.cram-md5 が更新される(毎時50分).
$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/dovecotpwdbg $ sudo -s # cp dovecotpwdbg /etc/cron.daily/dovecotpwdbg
パーミッションを755にするのを忘れないこと!
(以前の構築作業では追加したスクリプトに対して実行許可を与えるのを忘れて
エラーが出ることが多かった)
# chmod 755 /etc/cron.daily/dovecotpwdbg
より頻繁にこのデータベースを更新するために cron を用いる. root で以下作業を行う.
# crontab -e
以下の 1 行を追加する.
50 * * * * /etc/cron.daily/dovecotpwdbg |
パスワードファイル /etc/dovecot.cram-md5 は新しいものにどんどん書き換えられるため, 一定時間でパスワードが消えることに注意(毎時50分)
usuzumi の外のホストから, imap 対応メーラー(例. Thunderbird)を用いて imap サーバを usuzumi に指定して, usuzumi 上の自分のアカウントあてに届いたメールを読んでみる. メーラの設定や.qmail の設定などは読み書きのするためのメールサーバでの準備を参照.
imap でのメール読みだしは ~/Mailbox から行なわれる.
ここでテストメール受信を行なうため, 管理者自身のホームディレクトリの
~/.qmail を編集する.
~/.qmail を編集. ./Mailbox を追加する.
(ただし過去に.qmail に./Mailbox を追加した場合はやらない)
$ echo "./Mailbox" >> ~/.qmail
メールが ~/Mailbox へ配送されるようになる.
dovecot は ntpdate 等で時刻を調節する際に,5 秒ほどずれているとサービスを停止してしまう. そのため,cron.daly でntpdate を実行させる場合にはdovecot が停止しても restart できるようにする.具体的には/etc/cron.daily/ntpdate に以下の行を追加する.
systemctl restart dovecot > /dev/null 2>&1 |
qmail をパッケージから入れた場合 smtp は初めから tcpserver によって立ち上がるようになっている.
telnet によって smtp の配信テストを行う
$ telnet 127.0.0.1 25
Trying 127.0.0.1 25 Connected to 127.0.0.1. Escape character is '^]'. 220 usuzumi.ep.sci.hokudai.ac.jp ESMTP 打つ-> helo lemon.ep.sci.hokudai.ac.jp 250 usuzumi.ep.sci.hokudai.ac.jp 打つ-> mail <mondo4@usuzumi.ep.sci.hokudai.ac.jp> 250 ok 打つ-> rcpt <mondo4@usuzumi.ep.sci.hokudai.ac.jp> 250 ok 打つ-> data 354 go ahead 打つ-> Subject: testing 打つ-> 打つ-> This is a test. 打つ-> . 250 ok 812345679 qp 12345 打つ-> quit 221 usuzumi.ep.sci.hokudai.ac.jp Connection closed by foreign host. % |
メールが届いている確認する.
$ lv ~/Mailbox以下があれば良い.
From mondo4@usuzumi.ep.sci.hokudai.ac.jp Tue Dec 01 13:41:49 2015 Return-Path: |
smtp 中継(smtpを使ったメールの送信)を許可するホストを指定する.
まず, 文献 1 に従って,
/etc/qmail/tcp.smtp を書く.
# emacs /etc/qmail/tcp.smtp
この後の作業ではグローバルIP が必要となるので, epcore 宛に申請を行ったのちに以下の作業 を行う. 例えば,133.87.45.12 という IP アドレスのホストからの smtp 中継を許可するためには, 次の 1 行目のように書く. 2 行目の 127. はローカルホストを指す. これは常に書くこと. 3 行目については調査中.
133.87.45.12:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" :allow,VERIFY="DEFER" |
次に以下のコマンドを実行する.tcp.smtp を元に /etc/qmail/tcp.smtp.cdb ができる.
# qmailctl cdb
qmail でsmtp を起動する際に用いられるスクリプトが/etc/service/qmail-send/run にある. 元々, tcpserver でqmail-smtpd を起動している部分が記述されているのでその部分を参考に 編集する.
# emacs /etc/service/qmail-smtpd/run
以下のように, 最後の数行をコメントアウト,追記を行う.
#exec softlimit -m 7000000 \ # tcpserver -v -R -l "$LOCAL" -x /etc/qmail/tcp.smtp.cdb -c "$MAXSMTPD" \ # -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp qmail-smtpd 2>&1 exec softlimit -m 7000000 \ tcpserver -HRv -l "$LOCAL" -x /etc/qmail/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp qmail-smtpd 2>&1 |
qmail を restart して tcpserver の起動を確認する.
# qmailctl stop # qmailctl start # ps aux | grep smtp
tcpserver -v -R -l usuzumi.ep.sci.hokudai.ac.jp -x /etc/qmail/tcp.smtp.cdb -c 20 -u 64011 -g 118 0 smtp qmail-smtpd |
先ほど /etc/qmail/tcp.smtp に書いた グローバルIP アドレス(ex. 133.87.45.12) を持つパソコンから, メーラー (例. Thunderbird) を使って, smtp サーバを usuzumi に設定し, usuzumi 以外の任意のサーバにあるアカウント宛 のメールを発信してみる.
/var/log/syslog に残るログは, 以下のようなものとなる事を確認する.
2015-12-02 17:46:39.816372500 tcpserver: status: 1/40 2015-12-02 17:46:39.816508500 tcpserver: pid 20808 from 133.87.45.12 2015-12-02 17:46:39.816537500 tcpserver: ok 20808 usuzumi.ep.sci.hokudai.ac.jp:133.50.160.52:25 :133.87.45.12::53705 2015-12-02 17:46:39.816948500 qmail-smtpd: pid 20808 from 133.87.45.12: New session 2015-12-02 17:46:39.861504500 qmail-smtpd: pid 20808 from 133.87.45.12: Received EHLO [127.0.0.1] 2015-12-02 17:46:39.924697500 qmail-smtpd: pid 20808 from 133.87.45.12: Sender |
gate-system から登録 IP アドレス一覧を受け渡してもらい /
etc/qmail/tcp.smtp.cdb を自動生成する.
そのために, 標準入力から IP アドレスリストを読み込み,
/etc/qmail/tcp.smtp に書き込むスクリプトを書いた.
これを /usr/local/sbin/list-2-tcp (2015/12/02 更新)とする.
root への実行許可を忘れずに.
$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/list-2-tcp $ sudo -s # cp ./list-2-tcp /usr/local/sbin/list-2-tcp # chmod 755 /usr/local/sbin/list-2-tcp
上で作成したtcp.smtp をデータベース化する必要がある. root への実行許可を忘れずに. gate の ip データベース更新時には, gate-system によってこの スクリプトが呼び出される.
tcp_smtp_cdb$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/tcp_smtp_cdb $ sudo -s # cp ./tcp_smtp_cdp /usr/local/sbin/tcp_smtp_cdb # chmod 755 /usr/local/sbin/tcp_smtp_cdb
gate-ip-show, gate-ip-list は gate-system のコマンドである.
http://cr.yp.to/software/ezmlm-0.53.tar.gzを取得,展開する. ezmlm-0.53/INSTALL に従って作業を行う.
$ wget http://cr.yp.to/software/ezmlm-0.53.tar.gz $ tar zxvf ezmlm-0.53.tar.gz $ cd ezmlm-0.53
qmail のインストール場所が変わったため, conf-qmail の/var/qmail/ を /var/lib/qmail/ に編集する.
$ emacs conf-qmail
/var/lib/qmail/ |
そのままmake すると,エラーが出る.
auto-str エラー とでたら, error.h の
extern int errno; を
#include <errno.h> に書き換える.
ezmlm-manage.o エラー もしくは
ezmlm-return.o エラー とでたら,
ezmlm-manage.c またはezmlm-return.c の
先頭に #include "log.h" を書き込む.
$ emacs ./error.h
extern int errno; を以下に書き換える
#include <errno.h> |
$ emacs ./ezmlm-manage.c
先頭に以下を追加する
#include "log.h" |
$ emacs ./ezmlm-return.c
先頭に以下を追加する
#include "log.h" |
$ make $ make man # make setup
/usr/local/bin/ezmlm/ 以下の ezmlm のコマンドバイナリ群にパス通す.
(具体的には PATH=... の行に/usr/local/bin/ezmlm を追加するだけ)
bash にパスを通す.
# emacs /etc/profile
PATH=...の一番最後に:でつないで以下を書く
/usr/local/bin/ezmlm |
反映する.
$ source /etc/profile
csh にもパスを通す
# emacs /etc/csh.cshrc
setenv PATH の一番最後に:でつないで以下を書く
/usr/local/bin/ezmlm |
メーリングリスト(ML)を作成する.詳細はezmlm-make の man 参照.
メーリングリストである testlist を作成する.
$ ezmlm-make ~/testlist ~/.qmail-testlist username-testlist usuzumi.ep.sci.hokudai.ac.jp
testlistには適当なメーリングリストの名前を,usernameには適当な作業ユーザのアカウント名を入れる.
次に作成した ML に ML 主催者が手動で購読者を追加する.詳細は ezmlm-sub の man 参照.
$ ezmlm-sub ~/testlist username@usuzumi.ep.sci.hokudai.ac.jp
登録が終了したら ML へ投稿してみる.先程登録したアドレスへ届くか確かめる.
$ echo subject:testing | qmail-inject usrname-testlist@usuzumi.ep.sci.hokudai.ac.jp
次に ML の自動処理コマンドを確かめる.
始めに投稿アーカイブから記事を取り出すコマンドを試す. 記事が送られてくるかを確認する.
$ qmail-inject username-testlist-get.1@usuzumi.ep.sci.hokudai.ac.jp < /dev/null
次に ML 参加者による自動登録抹消を試す. 確認メールが送られてくるので その指示に従い登録抹消する.
$ qmail-inject username-testlist-unsubscribe@usuzumi.ep.sci.hokudai.ac.jp < /dev/null
Mailbox に来たメールに従って登録を消す.
$ lv Mailbox
メールの内容の以下の部分に従う.
removed from this mailing list, please send an empty reply to this address: username-testlist-uc.1318325352.njdckeaplgokjdbinace-username=usuzumi.ep.sci.hokudai.ac.jp@usuzumi.ep.sci.hokudai.ac.jp |
$ qmail-inject username-testlist-uc.1318325352.njdckeaplgokjdbinace-username=usuzumi.ep.sci.hokudai.ac.jp@usuzumi.ep.sci.hokudai.ac.jp < /dev/null
登録を抹消できたかどうかの確認は ML 登録アドレス一覧を見る. 詳細は ezmlm-list の man を見よ.
$ ezmlm-list ~/testlist
http://www.ezmlm.org/archive/0.40/ezmlm-idx-0.40.tar.gz
を取得,展開する.
いつの間にか本家がなくなっていた(2012/04/05 現在)のでネット上から取得したファイルをサーバに挙げておいた
ezmlm-idx-0.40.tar.gzこれを使ってほしい.
ezmlm-idx-0.40/INSTALL.idx に従って作業する. (2011/10/12 での最新版は 7.1.1 だが今回は 0.40 を使用する)
$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/ezmlm-idx-0.40.tar.gz $ tar zxvf ezmlm-idx-0.40.tar.gz
ezmlm をビルドした時のディレクトリに持っていく.
$ cp -r ezmlm-idx-0.40/* ezmlm-0.53/ $ cd ezmlm-0.53/
パッチを充てる
$ patch < idx.patch
crontab のありかを調べる.
$ which crontab
/usr/bin にあれば先へ進む. 違う場所にある場合は conf-cron にありかを書き込む.
/usr/bin/crontab |
MySQL(解説は http://www.mysql.com/)
を使うか否かを決定.
ここでは使わないこととして先に進む. 使う場合にはこの段階でやるべき作業がある.
$ make clean $ make; make man $ make jp
最後の行は使用言語を選ぶものである. jp は日本語を意味する.
これによって自動管理要請に ezmlm が応えてユーザに送る文言
が日本語になる.
MySQL を使わない場合は以下を実行する(使う場合には異なる作業が要る).
# make std # make # make setup
ユーザ eztest を作って ezmlm-idx のコマンドバイナリ群が実行できるか確かめる
(ezmlm-testコマンド).
ezmlm-test を実行する前に ezmlm-idx のコマンドバイナリ群に
パスが通っているかを確認されたい.
テストユーザを作成する.
$ chmod 755 ezmlm-test $ sudo -s # adduser eztest # su eztest eztest@:$ source /etc/profile eztest@:$ cd ezmlm-0.53/ eztest@:$ ./ezmlm-test
以下のように出たら成功.
testing ezmlm-idx: ezmlm-idx-0.40 Using FQDN host name: usuzumi.ep.sci.hokudai.ac.jp ezmlm-make (1/2): OK Using RDBMS support: No. testing for qmail: >=1.02 ezmlm-reject: OK ezmlm-[un|is]sub[n]: OK ezmlm-send (1/2): OK ezmlm-tstdig: OK ezmlm-weed: OK ezmlm-make (2/2): OK ezmlm-clean (1/2): removed mod queue entry 3 that wasn't due |
ここで su eztest と行ったが sudo コマンドを用いる場合はデフォルトでは環境変数 $HOME が
ログインしたユーザとなったままとなり正しく実行されないので -H オプションをつけて実行する.
テストユーザを削除する.
# userdel -r eztest
最終更新日:2015/12/03 (三上 峻) | Copyright © 2000-2015 epcore |