2004.12.15

Majordomo

1. インストール

Majordomoのインストールは今回portsでmake installで一発で入れた。
手抜きだが便利です。 

# cd /usr/ports/mail/majordomo
# make install clean

手動だとMajordomoが使うユーザ名やグループ名を登録したり、sendmail.cfで指定されているsendmailの位置が/usr/sbin/senmailで無く手直しが必要など、結構手間取るのだが、portsだと、環境に合わせてmakeしてくれるので手間がかからない。
問題は、sequencerを使ってメールのタイトルに[abcd: 0123]のようなシーケンスを振ろうとすると返信で[abcd:0124]Re:[abcd:0123]・・・・ のようにシーケンス番号が重なってしまうことである。
これはsequencerの153行目あたりを自称nob & tamotsuさんがアドバイスしてくれているように以下の修正をして重なりを防止する。
ただし、outlook expressはメールヘッダーがMIMEの規定に違反していて、重なりを防止できない。
が、昨日outlookで実験したらOKだった。 新しい版数では対処できているのか?

while (<STDIN>) {
+ # by nob & tamotsu
+ if (/^Subject:/) {
+ s/[rR][eE]:.*[([].*d+[)]]/Re:/;
+ s/[rR][eE]:s*[rR][eE]:/Re:/g;
+ s/[rR][eE]:s*[rR][eE]:/Re:/g;
+ }
+
print IN $_;
}

あとは、/usr/local/majordomo/listsにtouch test(ML list名)を作り、touch test.seqでシーケンス番号のためのファイルを作る。 そして

#chown majordom *
#chgrp majordom *

としてグループ、オーナーともにmajordomにしておく。
また、必要ならtest.infoとtest.intoも説明文のファイルとして適当な内容のファイルも作る。

2. aliasesについて

インストールが終わるとメールのaliasesにEntryを追加してnewaliasesコマンドで修正を 反映させる。  以下はaliasesへの追加例。

owner-owner: nakamura
majordomo: "|/usr/local/majordomo/wrapper majordomo"
majordom: majordomo
majordomo-owner: nakamura
owner-majordomo: nakamura
test: "| /usr/local/majordomo/wrapper sequencer -l test -n -h
HOST名 test-going"       (上の行から連続して記述)
test-going::include:/usr/local/majordomo/lists/test
owner-test:nakamura
test-request:"|/usr/local/majordomo/wrapper request-answer test"
test-approval:owner-test
test-owner:owner-test

ところで、メールのタイトルにシーケンス番号を付けるsequencerのparameterなんて知らなくて人の真似をしてaliasesに書いていたが、今回調べたら下記のようになっていた。

-A moderate
-a: approve passwd
-d debug
-f: sender 指定
-h: ML Hostname 指定
-I: restrict_post
-l: Mailing List の名前
-m: mailer option
-M: max length
-n seq を使って番号管理をする
-N Archive の写しを作る + -n 機械
-p: precedence
-R purge Received
-r: Reply-To: を使う。引数に宛先を書く( host名 付)
: が付いているのは 後に更に引数を付けるもの。

(3) メーリングリストの作成


majordomo宛てに
subscribe test
end
の内容のメールを送り、testに登録する。
登録の手続きのメールが送られてくるので、その手順に従って作業(authorize)を進める。
/usr/local/majordomo/lists内に作られたtest.configを編集すれば、シーケンス番号の付け方、認証の仕方などが変えられる。

2004.12.11

MHonArc

MHonArcは/usr/ports/www/mhonarcでmake install cleanと入力してインストールする。

1. MHonArcの文字化け対策

MHonArcは出力をEUCにすると行頭が改行コードの変換ミスで”(B “のようなものが付く。
以前 iso2022jp.pl をPatchして直したが、どこを直したか忘れている。

/usr/local/share/MHonArcにある iso2022jp.pl を見てみる。
以前より大分変わっていて対処しようとした後が見える。
115行目あたりに

$ret =~ s/^\033\(B//;  が見つかる。

行頭にESCに続いて(Bが現れたら削除しようと言うもので、html化されたものを見たら、これでよさそうだが、うまく行かない。

結局行頭にかかわらずESCに続いて(Bが現れたら削除するように”^”記号を削除して

    $ret =~ s/\033(B//; としたらうまく行った。 

2. 出力htmlのフォーマットの設定

個々の出力htmlファイルの出力はxxxxx.rcというrc fileで指定する。
設定ファイルの置き場所は/usr/local/lib/MHonArcである。
このファイルで出力htmlのヘッダー部など細かく指定できる。
以下はサンプル。

======================================
<!--コメントはこの形式で書きます -->

<!-- "Resource"には1行で指定するものと -->
<!-- <NAME>データ</NAME>の形式で指定するものがあります -->

<MIMEARGS>
text/plain:default=iso-2022-jp
</MIMEARGS>

<CHARSETCONVERTERS>
plain;          iso_2022_jp::str2html;     iso2022jp.pl
iso-2022-jp;    iso_2022_jp::str2html;     iso2022jp.pl
</CHARSETCONVERTERS>

<REVERSE>
<!-- Date index, Thread indexの並び順を指定します -->
<!-- SORT は mailのDate header順-->

<!-- REVERSE は逆順になります-->
<!-- SUBSORT は Subject header順です-->

<TIMEZONES>
JST:9
</TIMEZONES>
<!-- UTC/GMTからの時差を指定します-->

<!-- defaultにJSTはない-->

<EXCS>
reply-to
in-reply-to
sender
Resent
</EXCS>
<!-- mailのheaderで無視するものを指定します -->
<!-- receivedとかX-はdefaultで無視されますので、
必要なものを追加します-->

<!-- Date index あるいは Subject indexの設定 -->

<IDXFNAME>
index.html
</IDXFNAME>
<!-- Date/Subject indexのfile名を指定します -->
<!-- defaultは maillist.htmlになってます-->

<TITLE>
Test
</TITLE>
<!-- Date/Subject indexのタイトル名を指定します -->
<!-- defaultは Mail indexになってます-->
<!-- HTMLのTITLEと、Date/Subject indexの表題になります-->

<IdxPgBegin>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; 
charset=euc-jp">
<link rel="stylesheet" type="text/css" href="../style1.css">
<TITLE>$IDXTITLE$</TITLE>

</HEAD>
<body style="background-color: rgb(240, 255, 255);">
<IMG SRC="../../dog.gif" ALIGN=LEFT>
<H2>$IDXTITLE$</H2>
</IdxPgBegin>

<!-- Date/Subject indexのHTML header部分を指定します -->
<!-- $*****$ は MHonArcのResourceです -->
<!-- $IDXTITLE$ は TITLE resourceで指定した値になります -->

<ListBegin>
[ <A HREF="../../index.html"></A> |
<A HREF="../index.html">Main Index</A> |
<A HREF="$TIDXFNAME$">Thread Index</A> ]
<font icolor="#008b8b"><i>Last updated: $LOCALDATE$</i></FONT>

<BR CLEAR=LEFT>
<HR>
<UL>
</ListBegin>
<!-- Date/Subject indexのmailがリスト表示されるまでの頭の部分を
指定します -->
<!-- $TIDXTITLE$ は TTITLE resourceで指定した値になります -->

<LISTEND>
</UL>
<HR>
[ <A HREF="../../index.html"></A> |
<A HREF="../index.html">Main Index</A> |
<A HREF="$TIDXFNAME$">Thread Index</A> ]
</LISTEND>

<!-- Date/Subject indexのmailがリスト表示された後の部分を指定します -->
<!-- $TIDXTITLE$ は TTITLE resourceで指定した値になります -->

<LiTemplate>
<LI><STRONG>$SUBJECT$</STRONG> 
<EM><FONT SIZE="-1"  COLOR="#008b8b">$FROM$<

</FONT>
</EM>
</LI>
</LiTemplate>
<!-- Date/Subject indexのmailでのリスト表示の仕方を指定します -->

<!-- Thread indexの設定 -->

<TTITLE>
ml (by thread)
</TTITLE>
<!-- Thread indexのタイトル名を指定します -->
<!-- defaultは Mail Thread indexになってます-->

<TIdxPgBegin>

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="../style1.css">
<TITLE>$TIDXTITLE$</TITLE>

</HEAD>
<body style="background-color: rgb(240, 255, 255);">
<IMG SRC="../../dog.gif" ALIGN=LEFT>
<H2>$TIDXTITLE$</H2>
</TIdxPgBegin>

<!-- Thread indexのHTML header部分を指定します -->

<THead>
[ <A HREF="../../index.html">Top Page</A> |
<A HREF="../index.html">Main Index</A> |
<A HREF="$IDXFNAME$">Date Index</A> ]
<BR CLEAR=LEFT>

<HR>
<UL>
</THead>
<!-- Thread indexのmailがリスト表示されるまでの頭の部分を指定します -->
<!-- $IDXTITLE$ は TITLE resourceで指定した値になります -->

<TFoot>

</UL>
<HR>
[ <A HREF="../../index.html">Top Page</A> |
<A HREF="../index.html">Main Index</A> |
<A HREF="$IDXFNAME$">Date Index</A> ]
</TFoot>

<!-- Thread indexのmailがリスト表示された後の部分を指定します -->
<!-- $IDXTITLE$ は TITLE resourceで指定した値になります -->

<!-- 個々のmailの表示 -->
<MsgPgBegin>
<HTML>
<HEAD>

<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link rel="stylesheet" type="text/css" href="../style1.css">
<TITLE>$SUBJECTNA:72$ </TITLE>
<LINK REV="made" HREF="mailto:$FROMADDR$">
</HEAD>

<BODY BGCOLOR="#faf0e6">
</MsgPgBegin>
<!-- mailの頭の部分を指定します -->

Sambaまで動かない

1. 起動できない

sambaも/etc/rc.conf に
samba_enable=”YES を書いておく必要があった。

2. smbpasswd>

Windows Clientから見えるようにするためにはSambaのパスワードを設定しておく必要がある。
SambaのPasswordはFreeBSDでは通常/usr/local/privateの中に作られる。

cd /usr/local/private
smbpasswd -a username
passwd :  xxxxxxx
retry again : xxxxxx

で設定する。

Apacheのインストール

2週間前から懸案であったFreeBSDを5.3-RELEAEに上げる作業を開始した。
CD ROMからインストールして、まずはApacheとNamazu, Majordomoをpackege installする。

1. まずApacheを動かそう

cd /usr/local/etc/rc.dに移って
./apche2.sh と打つが起動した気配が無い。
httpd.confを実績のある現行(5.1-RELEAE)のものをコピーしてhostnameのみ
変えて、再トライするが起動しない。
調べたら、/etc/rc.confに apache2_enable=”YES”を書かなければダメに
なったと・・
追加したが、起動させようとすると
/usr/local/etc/apache2 にIncludeにconfファイルが無いと言う。
httpd.confを見たら最後の行に
Include etc/apache2/Includes/*.conf
なんだ、これは。 コメントアウトしたら、やっと起動した。 やれやれ

2. 文字化け対策

Apacheの設定ファイルのhttpd.confでは文字コードは

AddDefaultCharset ISO-8859-1

 となっている。
 これをコメントアウトして

AddDefaultCharset   Off

 とする。 これで表示文字コードはhtmlの指定に従うようになる。

« Previous