SENDMAIL(8)

名称
sendmail - インターネットを通してメールを送る

書式
sendmail [flags] [address ...] newaliases mailq [-v]

解説
sendmail はメッセージを他の人に送ります。必要ならばネットワークを 通してメッセージを正しい場所に転送します。

ただし、 sendmail はユーザインタフェースとして使われることは考慮さ れていません。ユーザにとって使いやすいフロントエンドは別のプログラムで 提供されます。 sendmail は、あらかじめメールとして整形されたメッセージ を配送するためだけに使われます。

sendmail を引数を指定せずに起動すると、 sendmail は標準入力を EOF (エンド・オブ・ ファイル) か `.' だけを含む行まで読み込み、メッセージのなかに記述されている アドレスにメッセージのコピーを送ります。アドレスの文法や内容にもとづいて 経路に使用するネットワークを決定します。

ローカルアドレスは、ファイルの中を検索して適当なエイリアスを行います。 先頭にバックスラッシュ `\' のついたアドレスについては、エイリアスは 行われません。 通常、送り手はエイリアスの対象に含まれません。つまり、もし `hino' が `sailor-team' にメールを送って、 `hino' が `sailor-team' に 含まれている場合、送ったメッセージは `hino' には送られません。

パラメータ:

-Btype

    ボディのタイプを設定します。現在有効なのは、`7BIT' か `8BITMIME' です。

-ba ARPANET モードに移行します。すべての入力行は CR-LF で終わらなければならず、 すべてのメッセージの行末には CR-LF がつきます。また、``From:'' と ``Sender:'' フィールドは送り手の名前としてチェックされます。

-bd デーモンモードで実行します。バークレー IPC が必要です。 sendmail は fork(2) を行い、ソケット番号25で SMTP コネクションを 待ちます。通常このモードは、 /etc/rc のなかで実行されています (/etc/netstart のなかのsendmail_flagsを “-bd -q30m” などに設定する必要があります).

-bi エイリアスデータベース (/etc/aliases) を初期化します。 newaliases を実行するのと同じです。

-bm 普通にメールを配送します (デフォルト)。

-bp メールキューのリストを表示します。 mailq と同じです。

-bs 標準入出力で RFC821 にもとづいた SMTP プロトコルを使います。このフラグは、 -ba フラグのすべての操作が SMTP に互換になることを意味します。

-bt アドレスのテストモードで起動します。このモードは対話モードでアドレスを入力し、 処理の過程を表示します。設定ファイル (/etc/sendmail.cf) をデバッグするのに使います。

-bv 名前のチェックだけを行います。メッセージの収集や配送は行いません。 ベリファイモードは、ユーザやメーリングリストが有効かどうかを確認する ために使います。

-Cfile
    別の設定ファイルを使います。 sendmail は、別の設定ファイルを使っているときには root として実行することはできません。

-dX デバッグ値として `X' を設定します。

-Ffullname
    送り手のフルネームを設定します。

-fname
    ``from'' に入る名前を設定します (つまり、送り手の名前です)。 -f は、``trusted'' なユーザ (普通は root, daemon, network です) が使うか、 送り手が自分自身の名前を指定して使う場合のみ指定することができます。

-hN ホップカウントを N に設定します。ホップカウントは、 メールが処理されるたびに増えていきます。ホップカウントがリミットになった とき、メールはエラーメッセージといっしょに送り返されます。 もしこのフラグが指定されなければ、メッセージのなかの ``Received:'' 行がカウント されます。

-n  エイリアスを行いません。

-ox value
    オプション x を、指定した value に設定します。 オプションについては、以下で記述します。

-pprotocol
    プロトコルの名前がメッセージを受け取るのに使われます。設定できるのは、 ``UUCP'' のようなプロトコル名かプロトコル＋ホスト名、たとえば ``UUCP:mercury'' などです。

-q[time]
    キューのなかにあるメッセージを処理する間隔を設定します。 time を省略した場合は、キューの内容を一度だけしか処理しません。 トリガとして time を与えた場合、数字の後ろにつける文字は `s' は秒、 `m' は分、`h' は時間、`d' は日、`w' は週を単位とすることを表します。 たとえば、`-q1h30m' や `-q90m' は、タイムアウトを 1 時間 30 分に設定します。 time が指定されると、 sendmail はデーモンとしてバックグラウンドで実行されます。 このオプションは -bd と一緒に使っても大丈夫です。

-rname
    -f フラグの別の形です。

-t  メッセージから受信者を読み取ります。To:, Cc:, Bcc: 行が 受信者のためにスキャンされます。Bcc: 行は転送前に削除されます。

-v  詳細モードに移行します。展開されるエイリアスなどが報告されます。

-Xlogfile
    指定された logfile に、メーラに出たり入ったりするすべてメッセージに関する情報を記録します。 メーラをデバッグする際の最後の手段としてのみ使ってください。 非常に大量の情報があっという間に記録されます。

以下に、設定することのできるオプションを記述します。これらのオプションは通常、 システム管理者のみが使います。オプションは、コマンドラインから -o フラグ を使って指定したり、設定ファイルから指定することができます。ここに記述して いるのは、部分的なものです。完全なリスト (と詳細) は、 を参照してください。

  オプション

Afile
    別のエイリアスファイルを使います。

bnblocks
    スプールファイルシステム上のフリーブロックの最小数を指定します。

c   ``expensive'' と考えられているメーラと接続するときは、 すぐに接続せず、リクエストはキューに入れられます。

CN  sendmail が、 N 個の配送に成功するたびにキューファイルに チェックポイントを設定します (デフォルトは 10 個です)。これによって、 システムのクラッシュによって長いメーリングリストの配送が中断 されたときでも、再開時に同じ人に重複して配送されることを防ぎます。

dx  配送モードを x に設定します。引数が `i' のときは 対話的 (同期的) 配送モード、`b' のときはバックグラウンド (非同期的) 配送モード、`q' のときはキューモードで行われます。実際の配送は、キューが 実行されるときに行われます。

D   必要なら自動的にエイリアスデータベースを構築します。

ex  エラー処理をモード x に設定します。 `m' はエラーメッセージを送り返します。`w' はエラーメッセージ を ``write'' します (送り手がログインしていなければ、メールを返します)。 `p' は、エラーメッセージを端末に表示します (デフォルト)。`q' は、 エラーメッセージを捨てます (exit コードだけを返します)。 `e' は、 BerkNet 用に特別処理をします。

    もし、モード `m' や `w' を使っているために、エラーとなったメッセージが エラーメールとして送り返されず、送り手が sendmail を実行しているマシン上のユーザならば、 メッセージのコピーは送り手のホームディレクトリにある dead.letter に追加されます。

f   メッセージのはじめに UNIX-style From 行を残します。

G   ローカルなメールの宛て先に含まれる名前が、パスワードファイルの GECOS フィールド とマッチするかどうかをチェックされます。

gN  メーラを呼ぶときにデフォルトのグループ ID として N を使います。

Hfile
    SMTP の際に使用するヘルプファイルを指定します。

hN  メールがループしていると判断されない、最大のホップ数を指定します。 メールのホップ数がこの N を越えると、 sendmail は メールがループしていると判断します。

i   メッセージの終わりに `.' を含む行を使いません。

j   エラーメッセージを MIME フォーマットで送り返します。

Ktimeout
    コネクションキャッシュの timeout を設定します。

kN  コネクションキャッシュのサイズを N に設定します。

Ln  ログレベルを n にします。

l   Errors-To: ヘッダがあれば、それを使います。

m   エイリアスを展開しているならば、``me'' (送り手自身) に送ります。

n   newaliases(1) コマンドを実行している間、以前の /etc/aliases 中のエイリアスの右側の項目 (エイリアスの値) を有効にします。

o   もしオプションが設定されていれば、メッセージが古いスタイルのヘッダ を持つことがあることを意味します。 オプションが設定されていなければ、このメッセージが新しい スタイルを持っていることが保証されます (2 つのアドレスの間はスペースのかわり にカンマで区切られます)。オプションが設定されていると、大抵の場合、 ヘッダのフォーマットを正しく決定するためのアルゴリズムが用いられます。

Qqueuedir
    キューメッセージを保存するディレクトリを選択します。

Sfile
    指定した名前のファイルに統計情報をセーブします。

s   必ずしも必要でない場合でも、つねにキューファイルを使います。 配送の間にシステムがクラッシュした場合でも安全です。

Ttime
    time に、キューのなかの配送されなかったメッセージのタイムアウト時間を設定します。 この時間内に配送が行われなかったときには (ホストのダウンなど)、 失敗したメッセージが送り返されます。デフォルトは 3 日です。

tstz, dtz
    タイムゾーンを指定した名前に設定します。

Uuserdatabase
    オプションが設定されると、情報を送る際にユーザデータベースに対する 問い合わせが行われます。データベースを分散する必要があることを除けば、 これを使ってエイリアス機構を調整することができます。エイリアスは 特定のホストでのみ有効だからです。 sendmail が USERDB 付きでコンパイルされていなければ使うことはできません。

uN  メーラの、デフォルトのユーザ ID を設定します。

Y   キューを処理する間、 fork(2) を行います。メモリが少ないマシンでは便利です。

7   到着するメッセージを 7 ビットにします (8 ビット目は落します)。

エイリアスのなかで最初の文字が `|' で始まるものは、メールの内容をパイプで コマンドに送るものと解釈されます。引数などをつけるために空白文字が 必要な場合はクォートする (" でくくる) 必要があります。以下に、例を示します:

    msgs: "|/usr/bin/msgs -s"

エイリアスには、``:include:file''という文法もあります。 sendmail は、 メールの受け手のエイリアスとして指定された filename を読みます。 以下に、例を示します:

    sailor-team: ":include:/usr/local/lib/sailor-team.list"

上記の例の場合は、 /usr/local/lib/sailor-team.list を読み、 `sailor-team'のグループのためのアドレスリストを作ります。

sendmail は、以下に示すような終了コードを返します。これらのコードは、 <sysexits.h> に定義されています。

EX_OK
    すべてのアドレスについて完全に成功しました。

EX_NOUSER
    ユーザ名が認識できません。

EX_UNAVAILABLE
    処理に必要なリソースを得ることができません。

EX_SYNTAX
    アドレスに文法的な間違いがあります。

EX_SOFTWARE
    引数が間違っているための、内部的なエラーです。

EX_OSERR
    ``cannot fork'' のような、一時的な OS エラーです。

EX_NOHOST
    ホスト名が認識できません。

EX_TEMPFAIL
    メッセージはすぐには送られませんでしたが、 キューには入れられました。

newaliases(8) が実行されると、 sendmail はエイリアスデータベースを再構築します。 mailq(1) が実行されると、 sendmail はメールキューの内容を表示します。

関連ファイル
/etc/aliases
    エイリアス名の生データ
/etc/aliases.db
    エイリアス名のデータベース
/etc/sendmail.cf
    設定ファイル
/etc/sendmail.hf
    ヘルプファイル
/var/log/sendmail.st
    統計情報ファイル
/var/spool/mqueue/*
    テンポラリファイル
/var/run/sendmail.pid
    デーモンのプロセスIDを格納しているファイル

sendmail.cf の作成方法などについては、 /usr/src/usr.sbin/sendmail/cf/README などを参照してください。 makemap(8) にも一部記述があります。

関連項目
binmail(1), mail(1), mailq(1), praliases(1), rmail(1), syslog(3), aliases(5), mailaddr(7), rc(8), mailstats(8), makemap(8)

DARPA Internet Request For Comments Sendmail - An Internetwork Mail Router, SMM, No. 9.

Sendmail Installation and Operation Guide, SMM, No. 8.