次のページ 前のページ 目次へ

2. ダイアルオンデマンドを使わない解決

Written by Leif Erlingsson <leif@lege.com>.

このパートのオリジナルバージョンでは不必要なものもたくさん含まれていました。 これはそれも取り上げたものです...。

2.1 sendmailのスタート

Slackwareなど: /etc/rc.d/rc.M:

echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -os) [queue only mode]..."
/usr/sbin/sendmail -bd -os      # NOT "-bd -q 15m", the "standard" flags!

[参考

Slackware default)


/etc/rc.d/rc.M:
# Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
  echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q 15m)..."
  /usr/sbin/sendmail -bd -q 15m
fi

man sendmail:

-q[time]

指示された間隔でキュー(var/spool/mqueue)に保存したメッセージ を処理します。時間が省略されると一度だけキューを処理します。timeは`s'が秒 、`m'が分、`h'が時間、`d'が日、`w'が週をあらわしています。例えば`-q1h30m' や`-q90m'はタイムアウトを1時間30分に設定します。時間になるとsendmailはバック グランドで実行されます。このオプションは-bdとともに使ったほうが安全です。

-bd

デーモンとして実行します。これはBerkeley IPCを必要とします。sendmailはSMTP 接続用のsocket 25(/etc/services)にリストされていてバックグランドで フォークし実行されます。

]

RedHatなど: /etc/rc.d/init.d/sendmail.init:

echo -n "Starting sendmail: [queue only mode]"
daemon sendmail -bd -os         # NOT daemon sendmail -bd -q1h
-osは基本的なものではありません。このオプションは:

スーパーセーフ [s] これを付けていればと安全です。例えば、キュー
ファイルを直接配送しようとする時でも常に呼び出します。sendmailはある環境
でクライアントをコントロールする前に常にキューファイルを呼び出します。これは
常にセットされています。
これはデフォルトのsendmail.cfで常に設定されています。

[参考:man sendmail

oオプション

これをセットしていると、メッセージは古いスタイルのヘッダも処理できるように なります。セットしていないとメッセージは新しいスタイルのヘッダだけ保証されます (例えばアドレス間のスペースの代わりにコンマを使うなど)。セットしてあると 適当なアルゴリズムがヘッダフォーマットを多くのケースで正しく決定 するように使われます。

sオプション

全く必要ない環境下でもキューファイルを常に呼び出します。 これは配送中のシステムクラッシュに対しても安全です。

]

2.2 sendmailの設定

まじめなsendmailユーザーは設定を行うためにm4ソースを使います。 sendmailをアップグレードしたり、ささいなsendmail.cfの変更以外ならなんでも この方法を行うことをお奨めします。

IPなどを動的ダイアルにしたいけれど、sendmailでの解決はしたくなく リターンヘッダなどで動作させる場合はm4ソースを使う必要はありません。

ちょっとした設定のためにsendmail.cfを直接設定する

この方法はきわめてsendmail.cfバージョンに対して依存しています。 以下の方法はsendmail-8.8.xのみで有効です。

/etc/sendmail.cfの編集:

# avoid connecting to "expensive" mailers on initial submission?
O HoldExpensive=True

後半 ....

#####  @(#)smtp.m4      8.33 (Berkeley) 7/9/96  #####

Msmtp,          P=[IPC], F=mDFMuXe, S=11/31, R=21, E=\r\n, L=990,
                T=DNS/RFC822/SMTP,
                A=IPC $h
Mesmtp,         P=[IPC], F=mDFMuXae, S=11/31, R=21, E=\r\n, L=990,
                T=DNS/RFC822/SMTP,
                A=IPC $h
Msmtp8,         P=[IPC], F=mDFMuX8e, S=11/31, R=21, E=\r\n, L=990,
                T=DNS/RFC822/SMTP,
                A=IPC $h
Mrelay,         P=[IPC], F=mDFMuXa8e, S=11/31, R=61, E=\r\n, L=2040,
                T=DNS/RFC822/SMTP,
                A=IPC $h
上で大切なフラグ(訳注:F=の箇所)は"e"です。 あなたのファイルで他のフラグがあっても気にしないで下さい。 フラグはそのままにして、"e"がない時に限り 上の例のようにフラグ"e"のみを追加して下さい。 "e"は"expensive"としてメーラーを示しています。

m4ソースを使ってsendmailを設定する

以下簡単にするためにsendmailのバージョンは8.8.7であるとします。もし違う バージョンを使うなら8.8.7をそのバージョンに置き換えて読んでいってください。 また命令はsendmailの古いバージョンでは実行できません。最新のsendmailを 入手して下さい!

sendmailソースは

http://WWW.Sendmail.ORG

かできれば

ftp://ftp.sendmail.org

でダウンロードして下さい。

私のパッチを入手することもお奨めします。エンベロープセンダーが逆エイリアス するようにしたパッチと、その他メール環境を経由してコントロールできるようにする スタッフがあります。

sendmailバージョンが8.8.7なら:

Sendmail Patch <sendmail@lege.com>

宛てにSubjectを

Subject:sendmail-8.8.7

としてメールを送って下さい[訳注:本文には特に何も書きません。メール を送ると折り返しMIMEメールで送られてきます。MIMEで送られてくるものは xaliases-2.0.tar.gz, sendmail-8.8.7-cf-cpio-idcmu.gzです)]。 このmini-HOWTOのsgmlソースについては

http://www.lege.com

からも入手できます。

「Queue Remote Mail + Deliver Local Mail」を動作させるために著者のパッチ を使わないで下さい。パッチはその他のことを解決するためのものです。ですが 多くのLinuxユーザーがこのパッチが役立つものであると気づくように言うのはよい と思います。このパッチは仮想ドメインを動作させます。仮想ドメインは 「ローカル」であるべきではありません。xaliasesあるいは言い換えて 逆エイリアス(reverse aliasing)を与えるものです。

sendmailソースを展開すると

/usr/src/sendmail-8.8.7/

ディレクトリができます。

/usr/src/sendmail-8.8.7/cfに移動して下さい。

必要ならパッチを当てて次のステップに進んで下さい。LDA(Local Delivery Agent) としてprocmailを使わないならパッチをあてず、作業を行う前に

/usr/src/sendmail-8.8.7/cf/ostype/linux.m4

を保存しておいて下さい。パッチは

/tmp/sendmail-8.8.7-cf-cpio-idcmu.gz

に保存して

cd /usr/src/sendmail-8.8.7/cf
gzip -dc < /tmp/sendmail-8.8.7-cf-cpio-idcmu.gz | cpio -idcmu
とします。 procmailを使わない場合は

/usr/src/sendmail-8.8.7/cf/ostype/linux.m4

の保存したコピーを元通りに書き戻して下さい。 パッチをあてていなくてもこれらの行を確認して、

/usr/src/sendmail-8.8.7/cf/cf/yourhostname.smtp.mc

に同じものがあてられているのを確認します。 (しかしパッチを当てるなら/usr/src/sendmail-8.8.7/cf 以下の"elijah"を含むファイル名を調べてみて下さい):

dnl # Defer Delivery to "expensive" mailers until next time the
dnl # queue is processed using "O HoldExpensive=True" and make
dnl # sure smtp mailers are "expensive".
dnl # (See original "sendmail" book Chapter 30: Options,
dnl # "Oc - Don't connect to expensive mailers", or
dnl # 2nd Edition "sendmail" book Chapter 34.8.29,
dnl # "HoldExpensive (c), Queue for expensive mailers".)
dnl #                           / Leif Erlingsson <leif@lege.com>
define(`confCON_EXPENSIVE', `True')
define(SMTP_MAILER_FLAGS, e)
MAILER(local)dnl
MAILER(smtp)dnl

2.3 メニューサポートの提案

このドキュメントのバージョン 1.x では

/var/X11R6/lib/fvwm/system.fvwmrc

に関する(訳注:ヴィンドウマネージャの)メニューサポートの提案も含まれて いました。現在のバージョンではこれはなくしましたが、必要なら取り寄せる こともできます:

メールの Subject: に

Menu support suggestions
と書いて

Menu support suggestions <fvwmrc@lege.com>

宛てに送って下さい(訳注:本文には何も書きません。メールを送ると 折り返しMIMEメールで送られてきます)。


次のページ 前のページ 目次へ