- 论坛徽章:
- 0
|
本帖最后由 r_zack 于 2011-02-17 19:18 编辑
我觉得应该是配置问题,我的Milter测试过程中发现并非所有书上说的Milter Macro都能用,经过对sendmail.cf的粗略核实,发现了一个问题:
定义在如下语句中的宏都能用,没定义在如下语句中的,即便加上去也用不了
Sendmail.cf:- O InputMailFilters=ZackMilter
- O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
- O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}
- O Milter.macros.envfrom= i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}
- O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
- O Milter.macros.eom={msg_id}
复制代码 这其中的宏我测试了的都能用,但这里面不包含其他很多重要的Milter宏,比如$a, $b, $g,我把它们写进上面的代码后:- O InputMailFilters=ZackMilter
- O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
- O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}
- O Milter.macros.envfrom=g, i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}
- O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
- O Milter.macros.eom=a, b, {msg_id}
复制代码 还是不能用$a, $b 或 $g,按书(O'Reilly Sendmail 4th edition)上说的,使用如下语句添加宏:- define(`confMILTER_MACROS_ENVFROM', `g')
复制代码 还是不能用,于是我猜想是不是我系统带的Sendmail比较变态,不包含某些宏呢?
随着我继续往下看sendmail.cf,我发现如下代码:- #########################
- # Format of headers #
- #########################
- H?P?Return-Path: <$g>
- HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
- $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
- (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
- for $u; $|;
- $.$b
- H?D?Resent-Date: $a
- H?D?Date: $a
- H?F?Resent-From: $?x$x <$g>$|$g$.
- H?F?From: $?x$x <$g>$|$g$.
- H?x?Full-Name: $x
- # HPosted-Date: $a
- # H?l?Received-Date: $b
- H?M?Resent-Message-Id: <$t.$i@$j>
- H?M?Message-Id: <$t.$i@$j>
复制代码 我不敢说别的,至少这说明该配置文件里面已经包含了那些我无法使用的宏,所以我觉得问题可能是出在我没有正确的“启用”这些宏,导致只有默认启用的可以用……
受累问一句,我应该怎么配置才能“启用”$a, $b, $g 这几个宏?
或者是不是$g不该在envfrom阶段调用? |
|