免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1645 | 回复: 0
打印 上一主题 下一主题

[求助]Sendmail::PMilter 某些Milter Macro无法使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-17 19:14 |只看该作者 |倒序浏览
本帖最后由 r_zack 于 2011-02-17 19:19 编辑

最近想跳槽,面试了几家公司,都要求会维护sendmail,于是我抽时间看了看,试了试
……缺陷还是比较严重的,但都是可以通过自己写Milter解决,于是我也用Perl写了个socket当Milter,
学Perl以来,除了作点简单的FastCGI,第一次写对我的运维工作有意义的程序,经过实验,$j, $i, $_, ${auth_authen}等宏是可以用的,
但是$a, $b, $g等却是不能用的,根据O'Reilly Sendmail 4th Edition Page 1181的说明,我在sendmail.mc中使用了
  1. define(`confMILTER_MACROS_ENVFROM', `g')
复制代码
还是不能用,但随着对sendmail.cf的观察,我发现能用的宏都被包含在下段代码中:
  1.    1. O InputMailFilters=ZackMilter
  2.    2. O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
  3.    3. O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}
  4.    4. O Milter.macros.envfrom= i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}
  5.    5. O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
  6.    6. O Milter.macros.eom={msg_id}
复制代码
于是我把$a, $b, $g加进去,但还是不管用
$ctx->getsymval('g');
始终返回undef

我感觉这可能是我对sendmail的配置问题,可是我在mail板块问了这个问题,那里太冷清了,都没人理我,所以我又会来了,呵呵,有没有哪位用过Sendmail Milter Macro的大神给点思路??

我觉得那些用不了的宏应该是被某种意义上默认情况下“禁用”了吧?并且我没能正确的“启用”它导致我的代码总是返回undef
是不是我不该在envfrom阶段调用$g ?
我在eom阶段调用它,它也是undef呀。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP