Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名称
sendmail - 電子メール配送デーモン
書式
sendmail [flags] [address ...] newaliases mailq [-v] hoststat purgestat smtpd
解説
sendmail はメッセージを一人または複数の受け手 (recipient) に送ります。必要ならばインター ネットワークを 通してメッセージを正しい場所に転送します。 sendmail はユーザインタフェースとして使われることは考慮されていません。 ユーザにとって使い やすいフロントエンドは別のプログラムで 提供されます。 sendmail は、あらかじめメールとして 整形されたメッセージ を配送するためだけに使われます。 引数を指定せずに起動すると、 sendmail は標準入力をファイルの終端まで、または `.'だけを含む 行まで読み込み、 そこで確認したメッセージのコピーを、 列挙されたアドレスに送ります。アドレ スの文法や内容にもとづいて 経路に使用するネットワークを決定します。 ローカルアドレスは、あるファイルの中を検索して適当なエイリアスを行います。 先頭にバックス ラッシュ `\' のついたアドレスについては、エイリアスは 行なわれません。 8.10 から、送り手は エイリアス展開の対象に含まれるようになりました。 つまり、`john' が `group' にメールを送る 際に、 `john' が `group' に含まれているならば、 送ったメッセージは `john' にも送られます。 パラメータ -Btype ボディのタイプを type に設定します。現在有効なのは、 7BIT か 8BITMIME です。 -ba ARPANET モードに移行します。すべての入力行は CR-LF で終わらなければならず、 すべて のメッセージの末尾には CR-LF がつきます。また、``From:'' と ``Sender:'' フィールド は送り手の名前としてチェックされます。 -bd デーモンモードで実行します。Berkley IPC が必要です。 sendmail は fork を行い、バッ クグラウンドで動作し、ソケット番号 25 で SMTP コネクションを 待ちます。通常このモー ドは、 /etc/rc から実行されています。 -bD フォアグラウンドで動作する以外は -bd と同じです。 -bh 継続的なホスト状況データベースの現在の値を表示します。 -bH 継続的なホスト状況データベースから 期限切れのエントリを抹消します。 -bi エイリアスデータベースを初期化します。 -bm 普通にメールを配送します(デフォルト)。 -bp メールキューのリストを表示します。 -bs 標準入出力で RFC821 にもとづいた SMTP プロトコルを使います。この フラグは、 -ba フ ラグのうち SMTP 互換の全ての操作を含みます。 -bt アドレスのテストモードで起動します。このモードは対話 モードでアドレスを入力し、処理 の過程を表示します。設定ファイル をデバッグするのに使います。 -bv 名前のチェックだけを行います。メッセージの収集や配送は行い ません。ベリファイモード は、ユーザやメーリングリストが有効かどうかを確認する ために使います。 -Cfile 別の設定ファイルを使います。 sendmail は、別の設定ファイル を使用する場合は root と して実行することはできません。 -dX デバッグ値を X に設定します。 -Ffullname 送り手のフルネームを設定します。 -fname ``from'' に入る名前(つまり、エンベロープ中の送り手 (envelope sender) の名前です)を 設定します。 最初の送信依頼の間に From: ヘッダが失われている場合、 このアドレスは From: ヘッダの中でも用いられる場合があります。 エンベロープ中の送り手アドレスは、 メッセージ伝送状態の通知の受け手として 用いられ、また、Return-Path: ヘッダにも現れ ます。 -f は、``trusted'' なユーザ(普通は root, daemon, network です)が使うか、 送 り手が自分自身の名前を指定して使う場合のみ指定することができます。 それ以外の場 合、X-Authentication-Warning ヘッダがメッセージに 付加されます。 -G メッセージのリレー (ゲートウェイ) 送信。 例えば、 rmail が sendmail を呼ぶときがそ うです。 -hN ホップカウントを N に設定します。ホップカウントは、 メールが処理されるたびに増えて いきます。ホップカウントが上限に達した とき、メールは「エイリアスがループしてい る」という旨のエラーメッセージと いっしょに送り返されます。 もしこのフラグが指定さ れなければ、メッセージの なかの ``Received:'' 行がカウントされます。 -i 入力されるメッセージ中の `.' だけを含む行を無視します。 このフラグは、データをファ イルから読み込むような場合に使用する必要があります。 -L tag syslog メッセージ中で使われる識別子を、指定した tag に設定します。 -N dsn 配送状況の通知条件を dsn に設定します。 dsn には、 `never' (何も通知しない)また は、コンマで区切った、 `failure' (配送が失敗した場合に通知する) `delay' (配送が遅れ た場合に通知する) `success' (配送が正常に行われた場合に通知する) の組み合わせを指定 する事ができます。 -n エイリアスを行いません。 -O option=value オプション option を、指定した value に設定します。この形式では長いオプション名が使 用されます。 詳しくは後に記述します。 -ox value オプション x を、指定した value に設定します。 この形式では、一文字のオプション名し か使用できません。 短いオプション名についてはこのマニュアルには記述されていません。 詳しくは、 Sendmail Installation and Operation Guide を参照して下さい。 -pprotocol メッセージを受け取るために利用するプロトコル名を設定します。 設定できるの は、``UUCP'' のようなプロトコル名だけか プロトコル+ホスト名、たとえば ``UUCP:ucbvax'' などです。 -q[time] キューのなかにあるメッセージを処理する間隔を設定します。 time を省略した場合 は、キューの内容を一度だけしか処理しません。 time は、 `s' (秒)、 `m' (分)、 `h' (時間)、 `d' (日)、 `w' (週)の単位を付けた数字で指定します。 たとえば、 `-q1h30m' や `-q90m' は、タイムアウトを 1 時間 30 分に設定します。 time が指定されると、 sendmail はデーモンとしてバックグラウンドで 実行されます。 このオプションは、問題な く -bd と共に指定可能です。 -qIsubstr キュー ID の文字列に substr が含まれるジョブのみを処理します。 -qRsubstr 受け手のリストの文字列に substr が含まれるジョブのみを処理します。 -qSsubstr 送り手の文字列に substr が含まれるジョブのみを処理します。 -R return メッセージがバウンスした時に返送されるメッセージの量を設定します。 return パラメー タには、メッセージ全体を返送する場合は `full' を、ヘッダのみを返送する場合は `hdrs' を指定します。 -rname -f フラグと同じですが、古い形式です。 -t 受け手をメッセージから読み取ります。To:, Cc:, Bcc: フィールドが受け手 のアドレスと して読み込まれます。Bcc: フィールドはメッセージの転送前に 削除されます。 -U 最初の(ユーザからの)発送である事を示します。 このフラグは、 Mail や exmh のような ユーザエージェントから呼び出す場合は 必ず 指定する必要があり、 rmail などのネット ワーク配送エージェントから呼び出す場合は、 絶対に 指定してはいけません。 -V envid オリジナルのエンベロープ ID を設定します。 これは、DSN をサポートするサーバ間では SMTP 上を伝達し、 DSN に従ったエラーメッセージの中で返送されます。 -v 詳細モードに移行します。 エイリアスの展開などが報告されます。 -X logfile 指定された logfile に、メーラに出入りする情報すべてを記録します。 メーラをデバッグ する際の 最後の手段としてのみ使ってください。非常に大量の情報があっという間に記録 されます。 -- コマンドフラグ処理を停止し、残りの引数をアドレスとして使用します。 オプション sendmail には、設定することができる多くの処理オプションがあります。 通常、これらのオプショ ンはシステム管理者のみが使います。 オプションは、コマンドラインから -o フラグを使って(短い オプション名で)指定したり、 -O フラグを使って(長いオプション名で)指定したり、 設定ファイル から指定することができます。ここに記述して いるのは部分的なもので、コマンド行から指定する 場合に便利な物だけを、 長いオプション名で示しています。完全なリスト(と詳細)は、 Sendmail Installation and Operation Guide を参照してください。 オプションには以下の物があります。 AliasFile=file 別のエイリアスファイルを使います。 HoldExpensive 接続するのに時間がかかるホストと接続するときは、 すぐに接続せず、リクエストはキュー に入れられます。 CheckpointInterval=N sendmail が、 N 個の配送に成功するたびにキューファイルに チェックポイントを設定しま す(デフォルトは 10 個です)。これによって、 システムのクラッシュによって長いメーリン グリストの配送が中断 されたときでも、再開時に同じ人に重複して配送されることを防ぎま す。 DeliveryMode=x 配送モードを x に設定します。配送モードには `i' 対話的(同期的)配送モード、 `b' バッ クグラウンド(非同期的)配送モード、 `q' キューモード(実際の配送は、キューが実行され るときに行われる)、 `d' 延期モード( -D オプションで指定された マップ (デフォルトは ホストマップ) に対し データベースの検索が行われない以外は `q' と同じ)があります。 ErrorMode=x エラー処理をモード x に設定します。有効なモードとして、 `m' はエラーメッセージを送 り返します。 `w' はエラーメッセージを送り手の端末に書き出します (送り手がログインし ていなければ、メールを返します)。 `p' は、エラーメッセージを端末に表示します(デフォ ルト)。 `q' は、エラーメッセージを捨てます(exit コードだけを返します)。 `e' は、BerkNet 用に特別処理をします。 もし、モード `m' や `w' を使っている場合に、エ ラーとなったメッセージが エラーメールとして送り返されず、送り手が sendmail を実行し ている マシン上のユーザならば、 メッセージのコピーは送り手のホームディレクトリにあ る dead.letter に追加されます。 SaveFromLine メッセージのはじめに UNIX-style の From 行を残します。 MaxHopCount=N メールがループしていると判断されない、最大のホップ数を 指定します。 IgnoreDots `.' だけを含む行をメッセージの終わりとして解釈しません。 SendMimeErrors エラーメッセージをMIMEフォーマットで送り返します。 設定されていない場合は、DSN (Delivery Status Notification: 配送状況通知) SMTP 拡張は無効になります。 ConnectionCacheTimeout=timeout コネクションキャッシュの タイムアウトを設定します。 ConnectionCacheSize=N コネクションキャッシュのサイズを 設定します。 LogLevel=n ログレベルを設定します。 MeToo=False エイリアスに自分自身が含まれていても、``me''(送り手自身)には送りません。 CheckAliases newaliases(1) コマンドの実行の際、 エイリアスの右辺(エイリアスの値)の有効性をチェッ クします。 OldStyleHeaders このオプションが設定されていれば、メッセージが古いスタイルのヘッダ を持つことがある ことを意味します。 このオプションが設定されていなければ、このメッセージが新しい ス タイルを持っていることが保証されます(2 つのアドレスの間は スペースのかわり にコンマ で区切られます)。このオプションが設定されていると、 ヘッダのフォーマットをたいてい の場合に 正しく決定する適応アルゴリズムが用いられます。 QueueDirectory=queuedir キューメッセージを保存するディレクトリを選択します。 StatusFile=file 指定した名前のファイルに統計情報をセーブします。 Timeout.queuereturn=time キューのなかの配送されなかったメッセージのタイムアウト時間を設定します。 この時間内 に(ホストのダウンなどにより)配送が行われなかったときには、 失敗した旨のメッセージが 送り返されます。デフォルトは 5 日です。 UserDatabaseSpec=userdatabase セットした場合、ユーザデータベースを見て、 フォワード情報を得ます。 この方法をエイ リアス機構の補助として使用する事ができます。 この方法は、データベースが分配されるこ とを意図している点が異なります。 一方、エイリアスは、そのホストローカルでのみ有効で す。 sendmail が USERDB 付きでコンパイルされていなければ使うことはできません。 ForkEachJob キューを処理する間、各ジョブごとに fork を行います。メモリが少ないマシン では便利で す。 SevenBitInput 到着するメッセージを 7 ビットにします (8 ビット目は落します)。 EightBitMode=mode 8 ビットの入力を 7 ビットの宛先へ送る場合の処理方法を mode に設定します。 処理方法 には、 m (mime 化) 7 ビット MIME 形式へ変換、 p (パス) 8 ビットのまま配送(プロトコ ルには違反します)、 s (厳密) メッセージをバウンス、 があります。 MinQueueAge=timeout 配送の試行の間、ジョブがキューに蓄積される時間を設定します。 DefaultCharSet=charset 文字集合が特に指定されていない 8 ビットデータにラベル付けする際に 用いる、デフォル トの文字集合を設定します。 DialDelay=sleeptime コネクションの確立が失敗した場合に、再試行までに sleeptime だけスリープします。オン デマンドでダイヤル接続するサイトでの 使用に便利です。 NoRecipientAction=action 受け手ヘッダ (To:, Cc:, Bcc:) がない場合の動作を action に設定します。 none メッ セージを変更しない、 add-to エンベロープで指定された受け手を入れた To: ヘッダを加え る、 add-apparrently-to エンベロープで指定された受け手を入れた Apparrently-To: ヘッ ダを加える、 add-bcc 空の Bcc: ヘッダを加える、 add-to-undisclosed `To: undisclosed-recipients:;' というヘッダを加える、という動作を指定できます。 MaxDaemonChildren=N 待ち受け SMTP デーモンが同時に生成する子プロセスの最大数を N に設定します。 ConnectionRateThrottle=N SMTP ポートへの 1 秒当りの最大コネクション数を N に設定します。 エイリアスのなかで最初の文字が `|' で始まるものは、メールの内容を パイプでコマンドに送るも のと解釈されます。 sendmail に引数の間から空白文字を削除させないようにする場合は 名前を クォートする (" でくくる)必要があります。 以下に、例を示します: msgs: "|/usr/bin/msgs -s" エイリアスには、 ``:include:filename'' という文法もあります。 sendmail は、 メールの受け手 のリストを得るために、指定されたファイルを読みます。 以下に、例を示します: poets: ":include:/usr/local/lib/poets.list" 上記の例の場合は、 /usr/local/lib/poets.list を読み、`poets' のグループの ためのアドレスリ ストを作ります。 sendmail は、以下に示すような終了コードを返します。これらの コードは、 <sysexits.h> に定義 されています。 EX_OK すべてのアドレスについて完全に成功しました。 EX_NOUSER ユーザ名が認識できません。 EX_UNAVAILABLE 処理に必要なリソースを得ることができません。 EX_SYNTAX アドレスに文法的な間違いがあります。 EX_SOFTWARE 引数が間違っているなどの、内部的なエラーです。 EX_OSERR ``cannot fork''' のような、一時的な OS エラーです。 EX_NOHOST ホスト名が認識できません。 EX_TEMPFAIL メッセージはすぐには送られませんでしたが、 キューには入れられました。 newaliases というコマンドで実行されると、 sendmail はエイリアスデータベースを再構築しま す。 mailq というコマンドで実行されると、 sendmail はメールキューの内容を表示します。 hoststat というコマンドで実行されると、 sendmail は、継続的なホスト状態データベースの内容 を表示します。 purgestat というコマンドで実行されると、 sendmail は、継続的なホスト状態 データベースから期限切れのエントリを抹消します。 smtpd というコマンドで実行されると、 -bd オプションを指定されたの同じように、 sendmail はデーモンとして動作します。
注
sendmail は、多くの問題の原因だと責められることがよくありますが、 実際のところ、それらの問 題は、 ディレクトリのモードが過剰に許可された状態であるなど、 他の問題に起因するもので す。このため、 sendmail は、システムディレクトリとファイルのモードをチェックし、 それら ディレクトリ、ファイルが信頼するに足るものかどうかを 決定します。 DontBlameSendmail オプ ションを設定することにより、 このチェックをオフにし、システムのセキュリティを低下すること も できますが、基本的には、パーミッションの問題は修正されねばなりません。 詳細な情報は、 http://www.sendmail.org/tips/DontBlameSendmail.html を参照して下さい。
関連ファイル
/etc/mail/sendmail.cf それ自身を除き、以下のファイルのパスはすべて /etc/mail/sendmail.cf の内部で指定されています。以下の値は概略に過ぎません。 /etc/mail/aliases エイリアス名の生データ /etc/mail/aliases.db エイリアス名のデータベース /etc/mail/sendmail.cf 設定ファイル /etc/mail/helpfile ヘルプファイル /etc/mail/statistics 統計情報ファイル /var/spool/mqueue/* テンポラリファイル
関連項目
mail(1), syslog(3), aliases(5), mailaddr(7), mail.local(8), rc(8), rmail(8) DARPA Internet Request For Comments RFC819, RFC821, RFC822. Sendmail Installation and Operation Guide, No. 8, SMM. http://www.sendmail.org/
歴史
sendmail コマンドは 4.2BSD から登場しました。 1Date: 2000/12/14 23:08:15 1 SENDMAIL(8)