UNIXの部屋 コマンド検索: sendmail

TOP UNIXの部屋 コマンド一覧 コマンドマニュアル 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識


検索 :
複数のキーワードを空白で区切ると AND 検索を行います。例:「ファイル 削除」


sendmail メール管理プログラム

最も有名な MTA (Mail Transfer Agent) で、メールの送信・中継・受信を管理する。普通はメーラー (RMAIL・Mew・netscape など) を使ってメールを送受信するので、直接 sendmail を実行する必要はないが、使い方を知っておいて損はないと思う。foo@example.com 宛にメールを送りたい場合、
% sendmail foo@example.com
From: my@mail.address (あなたのメールアドレス)
To: foo@example.com
Subject: This is test mail.
(ここに空行を入れる。ここまでがヘッダ。ここから先がボディ)
メールの内容
.(ドットのみの行を入力すると終了)
となる。ドットのみの行を入力すると終了してしまうので、本当に「.」のみの行を送りたいときは -i オプションを使うとよい。

宛先である foo@example.com を、sendmail の引数と、To: フィールドの両方に書いていることに注意してほしい。この場合、本当にメールが送信されるのは、引数で示した方のメールアドレスであり、To: foo@example.com は実際の宛先とは一切関係ない。すなわち
% sendmail foo@example.com
To: hogehoge@fugafuga (foo@example.comとは全く関係ないメールアドレス)
としてもよいし、From: フィールドも、送信者のメールアドレスを書く必要はない。
ただし、他のヘッダに誰が送ったか書き込まれるので、いたずらメールを送ろうなどと考えないこと。

-i 「.」のみの行を送っても、ボディの終了とみなさないようにする。
この場合、ファイルに送信したい内容を書いて
% sendmail foo@example.com < file
とするか、Ctrl-D で EOF を送るとよい。
-t To: Cc: Bcc: フィールドを認識する。
先に書いたように、sendmail はデフォルトでは To: Cc: Bcc: などのフィールドを無視し、コマンドラインで指定されたメールアドレスのみにメールを送信するが、-t オプションを付けると、To: Cc: Bcc: フィールドを解析し、各フィールドで指定されたメールアドレスにメールを送信する。-t オプションを付けた場合、コマンドラインで送信先メールアドレスを指定する必要はない。

また、mail.server.com で動いている SMTP サーバ経由でメールを送る場合は
% telnet mail.server.com smtp
HELO あなたのドメイン名
MAIL FROM: あなたのメールアドレス
RCPT TO: 送信先のメールアドレス
DATA (ここまでがエンベロープ。ここから先がヘッダ)
From: うそのメールアドレス
To: 送り先メールアドレス
Subject: タイトル
(空行。ここから先がボディ)
メールの内容
.(ドットのみの行はボディの終了を示す)
QUIT
とすればよい。なお、これは SMTP プロトコルの例であって、sendmail に限ったことではない。

なお、sendmail が /usr/lib にある UNIX もあるので注意。
>> コマンド mail *   mew *