[PREVIOUS CHAPTER] [NEXT CHAPTER]

7 おもに fml そのもの

    7.1	user@domain でないと自動登録できない
    ../how_to_subscribe 4.15

    そういうものです。

    makefml を使えば登録できます。

    7.2	log ファイルに残る 550... みたいな数字は何？

    Sendmail からのエラーメッセージの記録です。メッセージは [45]\d\d 形式
    です。ログの前後を調べて何が原因か調べてみて下さい。

    7.3	WARNING: UNIX FROM Loop

    メールがMLにまた帰ってくる場合があります(ループ)。例えば自動登録の時に
    ＭＬ本体とかを間違って登録した場合や、同じメールをそのままＭＬへ送り返
    してくるMTAが走っている場合などです。例えば『/usr/sbin/sendmail -bd -t
    みたいな間違った設定をしたせいで 無限ループ事件というのが先日おきた』
    のを ふせぐための コードです。

    この警告は自分自身に同じメールが返ってきた時に MAIL FROM: $MAINTAINER
    だった時に出ます。

    ふつうは MAINTAINER に登録するものは ML-request とか ML-admin みたいな
    ものを別に作って登録するという暗黙の前提をしてます。そのため自分でＭＬ
    にメールをだして 『自分 == $MAINTAINER』の場合もこの loop check にひっ
    かかります。よって、MAINTAINER は -request とかにするのがおすすめです。
    なお、

    	$NOT_USE_UNIX_FROM_LOOP_CHECK = 1; (default 0)

    とすると、このループチェックメカニズムを使わなくなります。

    7.4	Try mci:prog since smtp connections cannot be opened

    FMLのデフォールトではIPCでMTAに配送をまかしています。しかしエラーでど
    うしてもソケットが張れなかった場合にはあきらめてプログラムを起動して使
    います。あまりにもこのエラーが頻繁に出るようならIPCをつかわないライブ
    ラリに変えてみてください。そのためには config.ph で

    	$Envelope{'mci:mailer'} = 'prog';

    とします。プロセス間通信ではなくて sendmail を直接実行します。
    この時実行するプログラムは

    	$SENDMAIL (default "/usr/sbin/sendmail")

    で定義されたプログラムです。インストール時に自動的に探してこの変数はセッ
    トされているとはおもいますが、念のためチェックして下さい。なお
    qmail-smtpd や exim も動かそうと努力します。

    7.5	The flock() function is unimplemented ...

    ０	perl がちゃんとコンパイルされていない
    １	flock() がないＯＳ
    ２	flock を使わないようにコンパイルされている？

    あたりかな？perl をコンパイルしなおすか、

    	$USE_FLOCK = 0;

    にしてみてください。

    	メニュ → オプション → USE_FLOCK → n

    7.6	503 Need RCPT (recipient)

    有効な送り返し先のアドレスがないためにでるはずです。該当する人から DM
    をもらってみると分かるのではないかと思います。例えば

    	ヘッダのどっかが一行あいてる
    	(いいかげんなsendmailが経路のどこかにいるとか)
    		とか
    	From: のかたちが 特殊
    		とか
    	Reply-to: (なにもアドレスなし)になっている
    		とか

    822でみとめているアドレス形式は もっと いろいろかけるんですが、実用
    的には sendmail.cf のデフォールトのどっちかの形 つまり 4.4 BSD の
    /usr/share/doc/smm/08.sendmailop/op.me にかいてある形式

    	Full Name <address>
    	address (comment)

    を仮定しています。#完全な822サポートはすごくたいへんなので…てぬき

    だから
    	From: ("< uja ") <uja@uja.baycity.jp>

    とかは間違ってないんだけど… うまく parsing できないということがありえ
    ますね…

    7.7	fml.pl はうごくのに msend.pl とか cron.pl とかはちゃんと動かない

    そのマシンで sendmail は動いてますか？ 動いてないと log に
    Smtp:connect:なんとか とかエラーがでるんじゃないかとおもいます。

    メールを受けて fml.pl を起動するマシンと UNIX の Shell サービスを提供
    しているマシン、つまり msend.pl を動かすマシンが違う場合がありえます。
    例えば RIMNET。

    7.8	まとめおくりの設定を手でしたらだめ？

    あまりよくありません。makefml かコマンドで設定して欲しいです。

    解説:

       Elena@Baycity.asia  matome   1u

    で、実はこれは古いフォーマットなのですが、fml.pl とか libfml.pl は理解
    できます。普通メール経由で まとめおくりの命令を与えたら、古いフォーマッ
    トになるはずがないので、

       Elena@Baycity.jp  m=1u

    となっていなくてはいけない msend.pl は仮定しています。このときファイル
    (members とか actives)は
    #.FML HEADER
    # NEW FORMAT FOR FURTHER EXTENSION
    # e.g. fukachan@phys r=relayserver m=3u s=skip
    # r= relayserver
    # m= matomeokuri parameter is time and option
    # s= skip. can post from this address but not delivered here.
    #
    # the same obsolete format is compatible with new format and as follows:
    # e.g. fukachan@phys relay-server matome 3u
    #.endFML HEADER
    Elena@Baycity.jp  m=1u

    こうなります。そして、msend.pl はこのフォーマットだけを理解します。

    また配送リストだけをいじって msendrc に記入しないと

    	WARNING: /usr/local/ml/hitomi/MSend/MSendrc filesize=0 O.K.?

    が出るかも知れません(最初の一人の時だけしか該当しません)。

    7.9	EUC のファイルを perl はバイナリと認識する?

    ファイルを送り返すルーチンは

        stat($f);
        if (-T _ && -r _ && -o _ ) { return $f;}

    という判定が入っていてテキストファイルのみを送り返す対象にしています。

    ファイルがEUCになっていると -T (普通のファイルなら真)では贋になります。
    perl は8ビット目が立っているものがある量 or ファイル全体の10%を越える
    ファイルを binary と判定するからです

    7.10	lha または ish が見つからない…

    某プロバイダのように UNIX の shell のアカウントのあるマシンには
    /usr/local/bin/lha があっても ＭＬサーバを実行するマシンにはなかったり
    するんだそうです。で、インストールの時のテストではうまくいっても、その
    後ＭＬサーバでコマンドを実行すると動かない。

    あと、shared library が違うということもありますので compile するなら
    static である必要があります
    ＃どうしてそういう実装にするかの裏の理由は知ってるけどとても迷惑;)

    7.11	MLとWWWのマシンが別々の場合なのでトラブリます;)

    メールを受けるマシンと WWW のマシンは別々(にある日強制的にさせられてし
    まったケース)で、WWWマシンの上でMLをやりたい場合などが該当するでしょう。
    ../utility_programs 5.0

    ML はメールを受けるマシンでしかできませんが、WWWマシンはメールを受けと
    れず、そのマシンの上でないとDISKも十分でない場合。pop でメールを読む環
    境ならPOPを使ったMLが実行できます。
    ../utility_programs 5.0

    7.12	Can't locate sys/socket.ph in @INC

    perl を新しくしましょう。

    解説:

    今はパッケージを広げるとfml.pl に対して sys/socket.ph という場所に
    一応BSD用の socket.ph があるので何とかなると思うのですが

    	Can't locate sys/socket.ph in @INC (did you run h2ph?) at ...
    	554 "|/usr/spool/driver/fml"... unknown mailer error 2

    perlのインストールの時にh2phを走らせて
    /usr/local/lib/perl/sys/socket.ph あたりにあるとおもうんですが、やって
    ないとファイルがないので怒られるわけです。

    	% (cd /usr/include; h2ph * sys/*)

    で /usr/local/lib/perl に作ってくれると思います。
    ＃h2phの詳細についてはマニュアルを読んで下さい。c.f.   % man h2ph

    本来はこういう system からみのファイルはちゃんとインストールするべきだ
    と思いますけどね？

    7.13	You should install sys/socket.ph using h2ph.

    perl を新しくしましょう。

    デバックモードで出てくる理由は前セクション参照。
    ＃後向きな解決法なのでインストールを促しています

[PREVIOUS CHAPTER] [NEXT CHAPTER]