戻る

3006 : Macros

マクロ

有る値を代表するもの

DXtext
D{NANTARAKANNTARA}moziretu

X というのは text
NANTARAKANNTARAというのは moziretu
使用方法例
$X
${NANTARAKANNTARA} 
の 形で使用する

わかり難くいえば

D{KOKODEKIMEMASU}kimetanaiyouhakoredesu で 決める
そうして 
${KOKODEKIMEMASU} を 引用すれば それは
kimetanaiyouhakoredesu に なります

ということです 変更する場合 上記のように 決めておけば 変更の 数が 少なくて 済むでしょう ただ 様式が 見慣れない と云うことだけ です。以下は実際では 無くて 考え方という 説明です

bunnshou iroiro korekore aruga dousiyouka kousiyou iroiro yaxtuta

     ===========================================================
DXiroiro : 定義すると Xiroiro に なる

bunnshou $X korekore aruga dousiyouka kousiyou $X yaxtuta
         |
         |
         v
bunnshou iroiro korekore aruga dousiyouka kousiyou iroiro yaxtuta

このマクロというもので 小文字は sendmail さんが 使用している場合があ るので 素人は 大文字で決めて つかいましょう という ルールがあるようです。

 定義済み マクロには こんなものが あるようです
u  : 受信者のユーザー名
h  : 受信者のホスト名
n  : エラーメッセージの発信者の名前
v  : 実行中の sendmail の ヴァージョン  
w  : 短い(ドメインを含まぬ)ホスト名
j  : 標準化された (ドメイン部)を 含むホスト名 :The canonical hostname
m  : ドメイン名
k  : UUCP での ノード名
b  : RFC822形式の日付
_  : 送信者の識別情報
opMode : 拡張SMTPプロトコルを用いる

試験

試験してみましょう 現在このように なっている と 思っています

$ cat test03.cf 
V10/Berkeley
D{REMOTE}mailhost
Mhub, P=[IPC],S=0,R=0, F=mDFMuXa, T=DNS/RFC822/SMTP ,A=IPC $h
Mlocal,         P=/bin/mail, F=lsDFMAw5:/@rmn, S=0, R=0, A=mail -d $u

この試験も同様に sendmail が 動作している場合 停止している場合 同じ 結果に なるようです。

/* sendmail デーモンモードで 運用中  */
$ /usr/sbin/sendmail -Ctest03.cf -bt < /dev/null
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>

/* sendmail 停止のばやい  */
$ /usr/sbin/sendmail -Ctest03.cf -bt < /dev/null
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>

うううーーん

$ cat test03.cf 
V10/Berkeley
D{REMOTE}mailhost
Mhub, P=[TCP],S=0,R=0, F=mDFMuXa, T=DNS/RFC822/SMTP ,A=IPC $h
Mlocal,         P=/bin/mail, F=lsDFMAw5:/@rmn, S=0, R=0, A=mail -d $u

$ /usr/sbin/sendmail -Ctest03.cf -bt < /dev/null
test03.cf: line 3: Mhub: P=[TCP] must be replaced by P=[IPC]
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>

怒るでーーー 元に戻して

$ /usr/sbin/sendmail -d35.9 -Ctest03.cf -bt < /dev/null

ほたら

$ /usr/sbin/sendmail -d35.9 -Ctest03.cf -bt < /dev/null
define(deliveryMode as b)
define(* as $*)
define(+ as $+)
define(- as $-)
define(= as $=)
define(~ as $~)
define(# as $#)
define(@ as $@)
define(: as $:)
define(> as $>)
define(? as $?)
define(| as $|)
define(. as $.)
define([ as $[)
define(] as $])
define(( as $()
define() as $))
define(& as $&)
define(0 as $0)
define(1 as $1)
define(2 as $2)
define(3 as $3)
define(4 as $4)
define(5 as $5)
define(6 as $6)
define(7 as $7)
define(8 as $8)
define(9 as $9)
define(n as MAILER-DAEMON)
define(opMode as t)
define(v as 8.12.11)
define(w as tama.catland.kingdom)
define(j as tama.catland.kingdom)
define(m as catland.kingdom)
define(k as tama)
define(b as Fri, 29 Sep 2006 22:53:06 +0900)
define(load_avg as 0)
redefine(w as tama)
define(REMOTE as mailhost)
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
define(_ as mm@localhost)
redefine(deliveryMode as i)
redefine(deliveryMode as i)
define(i as k8TDr6PJ000473)
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
define(addr_type as e r)

この表示例は文字化けしてるかも しれません 各々 システム にて 見たのが 本来の形です やりかた は これで 良いとしても 出力 は 異なる場合が有ると 思っておいて 下さい 。今日はここまで

戻る

にゃんたろう 拝!
2006年 9月29日 (金) 22:52:17 JST 作成

Copyright © 2004.-2007. nyantarou All Rights Reserved.