|
図1 電子メールの例
Date: Thu, 8 Apr 1999 16:18:24 +0900 (JST) From: osaru@west.tbn.ntt.co.jp Subject:小型記憶装置 Clik! 、アイオメガが 5 月発売 To: gorila@east.tbn.ntt.co.jp Cc: banana@west.tbn.ntt.co.jp Message-Id: <199904080718.QAA05172@west.tbn.ntt.co.jp> ■◎小型記憶装置「Clik!」を5月発売 |
|
% telnet mail.kaisya.co.jp smtp |
|
220 mail.kaisya.co.jp ESMTP Sendmail.....(以下略) |
|
HELO user.kaisya.co.jp 250 mail.kaisya.co.jp Hello user.kaisya.co.jp [xx.xx.xx.xx] pleased to meet you |
|
MAIL From:<koshino@kaisya.co.jp> 250 <koshino@kaisya.co.jp>... Sender ok RCPT To:<yokozuna@kaisya.co.jp> 250 <yokozuna@kaisya.co.jp>... Recipient ok |
|
DATA 354 Enter mail, end with "." on a line by itself From: koshino@kaisya.co.jp To: yokozuna@kaisya.co.jp Subject: test mail ←空行を入力 This is a test mail. . 250 NAA123456 Massage accepted for delivery |
|
QUIT 221 mail.kaisya.co.jp closing connection |
|
% nslookup mail.kaisya.co.jp. Server: ns.kaisya.co.jp Address: 123.45.67.1 Name: mail.kaisya.co.jp Address: 123.45.67.8 |
|
% nslookup kaisya.co.jp. Server: ns.kaisya.co.jp Address: 123.45.67.1 Name: kaisya.co.jp |
|
% nslookup -type=mx kaisya.co.jp. Server: ns.kaisya.co.jp Address: 123.45.67.1 kaisya.co.jp preference = 10,mail exchanger = mail.kaisya.co.jp kaisya.co.jp preference = 20,mail exchanger = ns.kaisya.co.jp kaisya.co.jp nameserver = ns.kaisya.co.jp mail.kaisya.co.jp internet address = 123.45.67.8 ns.kaisya.co.jp internet address = 123.45.67.1 |
|
% cd build.unix % sh ../dist/configure % make % su # make install |
|
% gzip −cd sendmail.8.9.1.tar.gz | tar xvf − % cd sendmail-8.9.1/arc % patch < ../../sendmail.8.9.1a.patch % patch < ../../sendmail.8.9.1a.unofficial.patch |
|
% sh Build −I/usr/local/include/ -L/usr/local/lib |
|
% APPENDDEF('confMANDOC','-man') % APPENDDEF('confNROFF','nroff') |
|
% sh Build −f siteconfig.m4 |
|
% su # sh Build install |
|
% gzip −cd CF-3.7Wpl2.tar.gz | tar xvf − % cd CF-3.7Wpl2/Master % patch < ../CF-3.7Wpl2-smtpcheck.patch1 % patch < ../CF-3.7Wpl2-smtpcheck.patch2 |
|
% make cleantools % make tools |
|
% make null-v8.cf |
|
% cat /etc/sendmail.pid 13079 /usr/lib/sendmail -bd −q1h |
|
% su # kill 13079 # mv /etc/sendmail.cf /etc/sendmail.cf.old # cp null-v7.cf /etc/sendmail.cf # /usr/lib/sendmail −bd −qh1 |
|
SO R$+@mail.kaisya.co.jp $1 R$+@kaisya.co.jp $1 R$+@$+ $#smtp $@$2 $:$1 R$+ $#local $:$1 Mlocal, P=/bin/mail, S=0, A=mail −d $u Msmtp, P=[IPC], S=0, R=0, A=IPC $h |
| コマンド | 解説 |
|---|---|
| S | ルールセットの開始を宣言 |
| R | 書換えルールを定義 |
| M | 配信エージェントを宣言 |
| D | マクロを宣言 |
| C | クロスマクロを宣言 |
| F | 外部ファイルからクラスマクロを宣言 |
| V | sendmail.cf のバージョンを定義 |
| O | 起動時オプションを宣言 |
| T | トラステッド・ユーザーを宣言 |
| H | ヘッダ形式を宣言 |
| P | 配送の優先度を宣言 |
| K | キー付きマップを宣言 |
|
% /usr/lib/sendmail -bt -Csendmail.cf ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > |
| オプション | 解説 |
|---|---|
| −bt | アドレステスト・モードを起動する |
| −bs | 標準入力経由でSMTPを起動する |
| −bi | エイルアス・ファイルのデータベースを初期化する(コマンド名 newaliases で起動しても同じ) |
| −bd | デーモンとして起動する(25番ポートでSMTP接続を待ち受ける) |
| −bp | キューに溜まっているメールの一覧を表示する(コマンド名 mailq で起動しても同じ) |
|
> $j mail.kaisya.co.jp > $w > $m kaisya.co.jp > $=w mail.kaisya.co.jp mail.kaisya localhost local [127.0.0.1] [123.45.67.8] |
|
> 3,0 kikuchi rewrite: ruleset 3 input: kikuchi rewrite: ruleset 3 returns: kikuchi rewrite: ruleset 0 input: kikuchi rewrite: ruleset 0 returns: $# local $: kikuchi > 3,0 kikuchi@mail.kaisya.co.jp rewrite: ruleset 3 input: kikuchi @ mail . kaisya . co . jp rewrite: ruleset 96 input: kikuchi < @ mail . kaisya . co . jp > ・・・・・・・・ rewrite: ruleset 3 returns: kikuchi rewrite: ruleset 0 input: kikuchi rewrite: ruleset 0 returns: $# local $: kikuchi > 3,0 kikuchi@yoso.co.jp rewrite: ruleset 3 input: kikuchi @ yoso . co . jp rewrite: ruleset 96 input: kikuchi < @ yoso . co . jp > ・・・・・・・・ rewrite: ruleset 88 input: < smtp : yoso . co . jp > . kikuchi < @ yoso . co . jp > rewrite: ruleset 88 returns: $# smtp $@ yoso . co . jp . $: kikuchi < @ yoso . co . jp > rewrite: ruleset 0 returns: $# smtp $@ yoso . co . jp . $: kikuchi < @ yoso . co . jp > |
|
Mrelay, P=[IPC], S=11, R=29, ... Msmtp, P=[IPC], S=11, R=21, ... |
のようにして、サイト内の別のホスト宛の場合には relay 配信エージェントを用い、サイト外のホスト宛の場合には smtp 配信エージェントを用いる、という仕組みになります。ただし、いずれも P=[IPC] という指定のため、配信の手段としてはSMTPが用いられます。
|
> 3,1,11,4 kikuchi rewrite: ruleset 3 input: kikuchi rewrite: ruleset 3 returns: kikuchi rewrite: ruleset 1 input: kikuchi rewrite: ruleset 1 returns: kikuchi rewrite: ruleset 11 input: kikuchi rewrite: ruleset 11 returns: kikuchi < @ kaisya . co . jp > rewrite: ruleset 4 input: kikuchi < @ kaisya . co . jp > rewrite: ruleset 4 returns: kikuchi @ kaisya . co . jp > 3,1,11,4 root rewrite: ruleset 3 input: root rewrite: ruleset 3 returns: root rewrite: ruleset 1 input: root rewrite: ruleset 1 returns: root rewrite: ruleset 11 input: root rewrite: ruleset 11 returns: root < @ kaisya . co . jp > rewrite: ruleset 4 input: root < @ kaisya . co . jp > rewrite: ruleset 4 returns: root @ kaisya . co . jp |
|
To: kikuchi, dareka@yoso.co.jp |
|
To: kikuchi@kaisya.co.jp, dareka@yoso.co.jp |
|
> 3,2,21,4 kikuchi rewrite: ruleset 3 input: kikuchi rewrite: ruleset 3 returns: kikuchi rewrite: ruleset 2 input: kikuchi rewrite: ruleset 2 returns: kikuchi rewrite: ruleset 21 input: kikuchi rewrite: ruleset 21 returns: kikuchi < @ kaisya . co . jp > rewrite: ruleset 4 input: kikuchi < @ kaisya . co . jp > rewrite: ruleset 4 returns: kikuchi @ kaisya . co . jp |
|
mail.kaisya.co.jp $| 123.45.67.8 |
|
> CheckDebug,check_relay mail.kaisya.co.jp $| 123.45.67.8 ・・・・・・ rewrite: ruleset 191 returns: OK |
|
> .D{client_addr}123.45.67.8 > .D{client_name}mail.kaisya.co.jp > check_mail kikuchi@mailkaisya.co.jp ・・・・・・ rewrite: ruleset 199 returns: OK |
|
> .D{client_addr}123.45.67.8 > .D{client_name}mail.kaisya.co.jp > check_rcpt kikuchi@mail.kaisya.co.jp ・・・・・・ rewrite: ruleset 194 returns: OK > .D{client_addr}123.45.6.7 > .D{client_name}yoso.co.jp > check_rcpt kikuchi@mail.kaisya.co.jp ・・・・・・ rewrite: ruleset 194 returns: OK > check_rcpt dareka@yoso.co.jp ・・・・・・ rewrite: ruleset 194 returns: $# error ... |
|
kikuchi, "| /usr/lib/mh/slocal -user kikuchi" |
|
\kikuchi, "| /usr/lib/mh/slocal -user kikuchi" |
|
xxx-ml: :include: /usr/local/aliases/xxx-ml owner-xxx-ml: postmaster |
|
CF_TYPE=R8V8 OS_TYPE=bsd4.4 FROM_ADDRESS='$m' ACCEPT_ADDRS='$m' BITNET=auto LOCAL_HOST_DOMAIN='kaisya.co.jp' ALLOW_RELAY_TO='kaisya.co.jp' |
|
CF_TYPE=R8V8 OS_TYPE=bsd4.4 FROM_ADDRESS='xx-bu.kaisya.co.jp' RECIPIENT_GENERIC=yes ACCEPT_ADDRS='$m' ACCEPT_LOWER=yes LOWER_MATCH_STYLE=any SPECIAL_FROM='kaisya.co.jp' SPECIAL_USERS='/etc/mail/users-in-kaisya' HUB_HOST='hubhost.kaisya.co.jp' REMOTE_USERS='/etc/mail/users-in-kaisya' NON_REMOTE_USERS='/etc/mail/users-in-bu' RELAY_LOCAL_TO_HUBHOST=no LOCAL_STICKY=yes BITNET=auto PRIVACY_FLAGS='goaway' LOCAL_HOST_DOMAIN='xx-bu.kaisya.co.jp' ALLOW_RECIPIENT_DOMAIN='xx-bu.kaisya.co.jp' |
|
CF_TYPE=R8V8-null OS_TYPE=bsd4.4 SPOOL_HOST='spoolhost.xx-bu.kaisya.co.jp' CHECK_HOST_ALLOW=127.0.0.1 CHECK_HOST_ALLOW=127.0.0.1 LOCAL_RELAY_DEFAULT=deny |
|
taro kikuchi hattori aikawa watanabe abe |
|
kikuchi aikawa watanabe |
|
CF_TYPE=R8V8 OS_TYPE=bsd4.4 FROM_ADDRESS='$m' RECIPIENT_GENERIC=yes REWRITE_GENERIC_FROM=lower REWRITE_GENERIC_TO=lower ACCEPT_ADDRESS='$m' ACCEPT_LOWER=yes LOWER_MATCH_STYLE=any ALWAYS_APPEND_DOMAIN=yes SMTP_MAILER_FLAG_SUB='M' ESMTP_MAILER_FLAG_SUB='M' SMTP8_MAILER_FLAG_SUB='M' BITNET=auto DIRECT_DELIVER_DOMAINS='$m' DEFAUT_RELAY='smtp:smtpserver.provider.ne.jp' USERTABLE_MAPS='local=hash:/etc/ut.local' USERTABLE_LOCAL_REWRITE=yes CHECK_HOST_ALLOW=192.168 CHECK_RELAY_DEFAULT=deny LOCAL_HOST_IPADDR=192.168 |
|
CF_TYPE=R8V8-null OS_TYPE=bsd4.4 SPOOL_HOST=spoolhost.private-network.jp SMTP_MAILER_FLAG_SUB='M' ESMTP_MAILER_FLAG_SUB='M' SMTP8_MAILER_FLAG_SUB='M' RELAY_MAILER_FLAG_SUB='M' CHECK_HOST_ALLOW=192.168 CHECK_RELAY_DEFAULT=deny LOCAL_HOST_IPADDR=192.168 |
|
yoshimoto:mailname kikuchi@provider.ne.jp |
|
% /bin/su # cd /etc # makemap hash ut.local.db <ut.local # chown root ut.local.db # chmod og-w ut.local.db |
|
defaults protocol pop3 no mimedecode # isp isp rules poll popserver.provider.ne.jp user kikuchi pass syoucyan |
|
set daemon 300 |