2004.12.15
FreeBSDはDefaultでsendmailがインストールされる。
もう今時はsendmailより新しいpostfixとかqmailなどを使うべきなのかもしれにが、体に染み付いた習慣から抜けられなくて、sendmailをそのまま使うことになっている。
以前はsendmailの設定ファイルであるsendmail.cfを作るのにxxxxx.defなどという設定ファイルの予備ファイルのようなものを作って、sendmail.cf作成用専用コンパイラーでsendmail.cfを作っていた。 が、最近はfreebsd2.mc等と名付けられたmc fileのサンプルがあるので、これをコピーして適当な名前で例えばmycomputer.mcなどと変えて、編集の後makeすればmycomuter.cfが出来上がるのでsendmail.cfに名前を変えて出来あがりとなる。
しかし、大概は最初からあるsendmai.cfで十分で、次に述べるaccessとlocal-host-namesのファイルと他のサーバからの中継を許す場合のみrelay-domainsのファイルを作る。
1.access
cyberspammer.com 550 We don't accept mail from spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
myhome.mydomain.com RELAY
10.77.14. RELAY
のように記述しrootになって
su-2.05b# makemap hash /etc/mail/access < /etc/mail/access
とすると、access.dbが出来上がる。
2. local-host-names
本来のホスト名と別名でも受けたい場合は次のように2つ書いて置く。
myhome.mydomai.com
another.name.co.jp
3. relay-domains
リレーを許してあげるドメインがあれば、relay-domainsの名前のファイルを
作り許可するドメイン名を列記しておけばよい。
最後に忘れてならないのは/etc/rc.confに
sendmail_enable=”YES”
の一行を追加し、rebootすれば立ち上がる。
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は/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の頭の部分を指定します -->
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
で設定する。