Chapter 29. トラブルシューティング

Table of Contents
レシピ’s
ファイルシステムがエラーの場合の動作は?
同じメールが何度も送られてくる場合

レシピ’s

1. fml のバージョンが知りたい。
2. Postfix のバージョンが知りたい。
3. Sendmail のバージョンが知りたい。
4. 定義されているアドレス一覧を見たい。
5. 定義されている alias 一覧を見たい。
6. メンバーが所属しているMLをすべて表示したい
7. fml をインストールしたホスト上から投稿できない
8. CGI で ML を作成したがメールサーバに反映されていない
9. 配送に失敗した記事を自動で再送したい
10. 何度も同じメールが来る
11. 特定の人に配送されてない気がする
12. MLのメンバーでないアドレスからエラーメールがくる
13. aliases から fml に変更したら 2 通来るようになった。
14. flock が動かない OS なのですが?
15. 記事番号が1にもどってしまった
16. 間違えて消してしまった!
17. ディスクが足りない時に消してよいファイルは?
18. 受信したメールに Reply-To: がついていないようです
19. 返信先が期待通りでないようです
20. References: や In-Reply-To: がついていません
21. メールリーダでスレッドが表示できません。
22. MLの受信者のうち一部の人だけ文字化けするそうです。
23. どうしても ISO-2022-JP で送ってこない人がいます
24. 一部の受信者が日本語が読めない環境にいる
25. 半角文字のメールが送られてきたらそれを矯正する
26. help を取り寄せると化けています
27. get できない
28. get で ish モードなどが動かない
29. subscribe しようとすると無視されるようです?
30. ' を含むアドレスがうまく扱えない
31. "xxx"@yyy.or.jp というアドレスだとうまく subscribe できません。

1. fml のバージョンが知りたい。

fmlconf が各MLの変数一覧を表示してくれます。どのML(実は適当なML でも良い)を指定しても良いので、fmlconf を実行して下さい。例えば

% fmlconf test |grep fml_version
fml_version                          = fml-devel current-20021029

2. Postfix のバージョンが知りたい。

% postconf mail_version

3. Sendmail のバージョンが知りたい。

% echo '$v' | sendmail -bt

4. 定義されているアドレス一覧を見たい。

fmladdr が /etc/passwd で定義されているユーザと aliases ファイルに設定 されている全アドレスを表示してくれます。

% fmladdr

Warning

fmladdr と fmlalias の違いは、一覧に ユーザ( /etc/passwd で定義されているもの )を含むか否か?という点です。 fmladdr は含みます、fmlalias は含みません。 fmlalias は純粋に alias 群を表示します。

5. 定義されている alias 一覧を見たい。

fmlalias が aliases ファイル(群)に設定されている全アドレスを表示してく れます。

% fmlalias

Warning

fmladdr と fmlalias の違いは、一覧に ユーザ( /etc/passwd で定義されているもの )を含むか否か?という点です。 fmladdr は含みます、fmlalias は含みません。 fmlalias は純粋に alias 群を表示します。

6. メンバーが所属しているMLをすべて表示したい

grep と言いたいところですが、grep じゃだめでしょう。メンバーリストがファ イルとは限らないので、全て出力させてから grep してみないとわかりません。 たとえば

% fml MLアドレス list|grep アドレス
を各MLについて繰り返すという作業になります。

これでも面倒かなぁ、よっぽど繁雑にする作業であればコマンドを用意しても 良いのですが、はてさて…

7. fml をインストールしたホスト上から投稿できない

いまでは珍しいかもしれませんが、そのMLサーバのホストの上からメールを 送信するとエラーになることがあります。

[コマンドの例]

% echo test |Mail -s test elena@fml.org

こういった場合には不完全な情報しか与えられていませんから、メール全体を 生成するのは Mail コマンド(もしくは Mail コマンドからメールを渡された MTA )の役目です。ただ、こういった場合に From: の部分が「ユーザ」だけと か「ユーザ@ FQDN 」だったりします。きちんと「ユーザ@正しいドメイン」 の形に生成されるようになっていないとfml8 としては正当なユーザには見 えません。

正しいドメインがつくように MTA の設定を直して下さい。

8. CGI で ML を作成したがメールサーバに反映されていない

ログを見てみて下さい。 まず WWW サーバ側に出力されているログを確認して下さい。 fml からのエラーメッセージが記録されている可能性があります。

/usr/local/apache/logs/error_log
/usr/local/apache/logs/suexec_log
MLのホームディレクトリすら出来ていないなら (そのMLのログファイルがありませんから) これらのログファイルを解析するしか方法がありません。

中途半端にMLがセットアップされている(例えばホームディレクトリはある が、aliases に反映されていない)場合には、fml のログファイル(例: /var/spool/ml/elena/log)を見てみて下さい。

9. 配送に失敗した記事を自動で再送したい

MTA 間での再送エラーは MTA が再配送を試みます。 Sendmail の歴史的なパラメータが五日間でしたので、 五日間再配送を試みるくらいの MTA が多いと思います。

fml8 と MTA 間でエラーが生じた場合は fml8 のメールキューに入り、 fml8 が MTA への再送を試みます。 この部分の動作において fml8 は MTA です。

参考: Chapter 35 も参照して下さい。

10. 何度も同じメールが来る

11. 特定の人に配送されてない気がする

12. MLのメンバーでないアドレスからエラーメールがくる

(1) MLの受信者の中にメールを転送している人がいると、 その転送先からエラーメールが管理者へ返ってくる可能性があります。

(2) SPAM メールです。

13. aliases から fml に変更したら 2 通来るようになった。

バグではなく MTA の挙動からそうなる可能性はあります。 たとえば aliases が次のようになっていたとします。

elena: rudo, kenken, hitomi
この aliases のMLに
From: rudo
To: elena 
Cc: rudo 

test
というメールを投稿したとすると rudo には一通届くだけです。MTA が elena MLの受信者を調べ rudo 宛の重複分を取り除くからです。

elena MLを fml に変更すると、 この重複削除の効果はなくなります。そのため、 elena ML経由 rudo 宛にとどく分と rudo 宛に直接配送されてくる分の2つになるというわけです。

14. flock が動かない OS なのですが?

fml8 は flock(2) 必須ですので、fml8 は動きません(たぶん動くけど動作が 変になる)。

15. 記事番号が1にもどってしまった

ということは起こらないように作ってあります(記事番号がアップデートでき ないならそもそも fml8 の処理が途中で止まるようになっている)。

ロジックに抜けがあって起きる可能性があるかもしれませんが、実際にそうい う現象がおきてみないとよくわかりません。いまのところ、ないと信じています。

16. 間違えて消してしまった!

自動でバックアップなどはしてないので打つ手はありません。

ミスオペレーションの可能性を考えて、つねに バックアップ をとっておくべきです。

17. ディスクが足りない時に消してよいファイルは?

安全に消せる領域は、ほとんどありません。

あえていえば、ねんのため記録している受信したメールおよび送信したメール のログである var/mail/incoming や var/mail/outgoing くらいでしょう。ま た過去のログが不要であれば log を消すという案もありますが、あまりおす すめできません。

18. 受信したメールに Reply-To: がついていないようです

別についている必要はありませんのでエラーでも何でもありません。

また「ついていない」という意味を確認したほうがよいでしょう。メールリー ダが表示していないだけかも知れません。メールヘッダをすべて表示するよう にして確認してもらうようにして下さい。

なお、デフォルトでは fml8 が配送した記事には Reply-To: がついています。 もし元々のメールに Reply-To: 指定があった場合は、そのまま元の Reply-To: が ついています。 もし元のメールに Reply-To: がないなら fml8 が適切なものをつけます。 たとえば、記事であれば投稿用のアドレス、コマンドメールの返事であれば コマンドメールのアドレスです。

ただ fml8 が Reply-To: をつけないように設定してあるのならつきません。 元々のメールに Reply-To: がければ、そのまま Reply-To: のないメールが配 送されます。

19. 返信先が期待通りでないようです

まず「返信先」とは何のことをいっているのか?を確認しましょう。

おそらくメールリーダで返信をクリックしたら用意されたテンプレートの 宛先が期待通りでなかったということをいっているのだとはおもいます。

ふつう、その宛先は Reply-To: なければ From: が使われているはずです。 メールリーダで加工されていないヘッダを表示してどうなっているかを確認し てもらって下さい。

なお、Reply-To: については前レシピを参照して下さい。

20. References: や In-Reply-To: がついていません

これは元のメールについていないためです。 そのため送信者のメールリーダがつけていないということになります。 どうにもなりません。

fml8 は References: や In-Reply-To: についてなにもしません。 素通しです。

21. メールリーダでスレッドが表示できません。

fml8 はこれらのヘッダフィールドに対して何もしません。 元のメールに In-Reply-To: や References: がないためと考えられます。

前レシピも参照して下さい。

22. MLの受信者のうち一部の人だけ文字化けするそうです。

全員なら fml8 に問題がある可能性もありますが、 一部の人だけ文字化けするのであれば、 その人たちのメール環境の問題です。

ただ元々のメールが特殊で一部の人だけ読めないという可能性(たとえば M$ 星人の人たちだけで勝手に見えているようなメールとメールリーダの組)もあ るので、一概に読む側が悪いとも言い切れない気がしますが…

23. どうしても ISO-2022-JP で送ってこない人がいます

MIME ヘッダを見てメールリーダがよろしく頑張ってしまうので、 現代では問題とされないことが多くなってしまったかもしれません。

無理矢理 fml8 側で変換できないわけではありませんが、整合性がとれなくな るので、やめたほうがいいでしょう。メールリーダにおまかせです。

24. 一部の受信者が日本語が読めない環境にいる

遠い外国ということでしょうか。 けっこうどうしょうもありませんが、ウエブメールなら読める可能性が高いです。 いずれにせよ読む側の問題なので fml8 で何かをすることは難しいでしょう。

25. 半角文字のメールが送られてきたらそれを矯正する

未実装です。



26. help を取り寄せると化けています

fml8 では ISO-2022-JP に変換してから送信していますし、 ヘッダにも適切な Content-Type: をつけています。

化けるようなら、これらの処理を行なうモジュールがうまく動作していない可 能性があります。ヘッダの確認と、そのメールの文字コードの確認をしてみて ください。

また、そのヘルプファイルと、ヘルプを取り寄せるトリガーになったコマンド メールを見せていただけるとさいわいです。

27. get できない

返されたエラーメッセージおよびログファイルを見てみて下さい。

ログの no such file は get しようとしたファイルがないということです。 そのメッセージの後にアクセスしようとしたファイルのフルパスが書いてあるので 確認してみて下さい。

ログの invalid argument は指示されたパラメータの何かが不正であった場合 にでます。また、指定した記事番号が存在しなかった場合にもこのエラーメッ セージが出ることがあります。

28. get で ish モードなどが動かない

特殊な圧縮形式は未サポートです。 fml8 の get および mget は送り返す際に MIME/Multipart 形式しか サポートしていません。

29. subscribe しようとすると無視されるようです?

メールアドレスの表現形式は制限されています。 表現の範囲は FML::Restriction::Base クラスに定義されており、 次のようになっています。

my $domain_regexp  = '[-A-Za-z0-9\.]+';    # domain of user@domain
my $user_regexp    = '[-A-Za-z0-9\._\+]+'; # user of user@domain
不正なアドレスの場合、ログに次のように残りつつ無視されます。
error: unsafe From: アドレス
error: ignore this request.

30. ' を含むアドレスがうまく扱えない

扱えるメールアドレスの表現形式が制限されているためです。 前レシピ参照。

31. "xxx"@yyy.or.jp というアドレスだとうまく subscribe できません。

そもそも、このアドレスには有効なユーザ部分がありません。 コメントだけですのでエラーになって当然です。

扱えるメールアドレスの表現形式は制限されています。 前々レシピも参照。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.