トークンに別ける 分割文字 として sendmail.cf で 決めている場所がある 歯切れが 悪いのは この数 というか 記号というか ”.:%@!^/[]+” に ついては オプションであるので 当然 変更が 出来る事となる したがって これは たまたまの 1例 である。
sendmail.cf の 抜粋を 見ると 以下の 様な場所が あると思う
... # Characters to be quoted in a full name phrase (@,;:\()[] are automatic) #O MustQuoteChars=. # delimiter (operator) characters (old $o macro) O OperatorChars=.:%@!^/[]+ # shall I avoid calling initgroups(3) because of high NIS costs? #O DontInitGroups=False ...
これを オプションで 決めるために m4 で 下記のように指定して 決めるようです。
define(`confOPERATORS' , `.:%@!^/[]+')
そうして sendmail の 内部で これは 変える事は出来ないもの として数個別に定めてあるようです ”parseaddr.c”を 触れる事が可能な人は 変える事が出来るのでしょうが
()<>,;\r\n /* 抜粋 です 参考資料にから 上手く 見つける事が 出来ない */ parseaddr.c /* 抜粋 です */ /* following delimiters are inherent to the internal algorithms */ #define DELIMCHARS "()<>,;\r\n" /* default word delimiters */
この場合を まとめると 分割文字 として
( ) < > , ; \r \n . : % @ ! ^ / [ ] +
内部で定めてある 分画文字 は 10個 と 書かれてあるようだが 10個 書 いてある所は 見つける事が 出来なかった 本件 保留
非常に 独断と 偏見であるが sendmail が 扱うのは 今まで見た例では メー ルアドレスを 色々 検査しているようです ということは 対象は メール アドレ スと云うことです
ここに 例として メールアドレス
usernanigasi@servardoreka.domainlow.domainoomoto
が 有るとします sendmail は この アドレスを 取り扱うために 分割をし ます そのためには 分割する 目安が 無ければ いけません (なんで 分割する の? にゃんたろうは 存じておりません)その目安として 分割 文字というか 記号というものを sendmail の 内部と sendmail.cf にて オプションで 追加 するような 形で 決めています オプションで 追加するのは mc で 追加して sendmail.cf に 追加する事に なります。 そうして メールアドレスを 分割し た 結果 その分割されたものを トークン というようです。という かなり 乱暴 な 纏めとしておこう: これは トークン と 分割文字 に 関する 纏め という ことです この場合 以下のように 試験してみましょう、結果は
$ /usr/sbin/sendmail -Ctest06.cf -bt Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 0 usernanigasi@servardoreka.domainlow.domainoomoto 0 input: usernanigasi @ servardoreka . domainlow . domainoomoto 0 returns: onlyonetime > /quit
じゃ 分割文字 は 決めてあるものとするのは 了解 したとして 分割文字は トークンなのか? と云うことですが 上記結果に おいては そのようです。あと 空白(スペース)は タブ は なんか きちんと しないと いけないのでしょうが にゃんたろうは おわずけとしておきます。使っていけば 雰囲気が わかって来 る事を 期待しましょう。
にゃんたろう 拝!
2006年10月 2日 (月) 22:15:56 JST 作成