对于来自某个特定IP地址的任何传入电子邮件,我接受它,但我也想重写(信封)收件人,例如:
如果$ {client_addr} ='12.34.56.78',则在末尾添加“.custom.local”:
例如:
recipient@example.com成为recipient@example.com.custom.local
我想尽早做到这一点,所以正常的规则处理继续进行(特别是mailertable功能)
有谁知道怎么做?
甚至可以使用“R”规则左侧的$ {client_addr}宏以及(匹配).cf文件中的文字IP地址吗?
答案 0 :(得分:1)
这可能会在整天失去工作效率的情况下节省其他的时间我浪费了这个权利...如果你复制/粘贴它,请注意标签
SParse1
# Append .custom.local to all incoming emails from 12.34.56.78
R$* < $* > $* $: $1 < $2 taglocal. $&{client_addr} .custom.local > $3 add IP into addresses
R$* < $* taglocal.12.34.56.78.custom.local > $* $: $1 < $2 custom.local > $3 convert just this 1 IP we want
R$* < $* taglocal $* > $* $: $1 < $2 > $4 remove IP we added above
对于那些想要爆炸自己大脑的人来说 - Parse1是收件人地址(已清理,并且“&lt;”和“&gt;”已经由早期规则添加)的地方,我们会检查并使用它们。我们所做的是添加到达电子邮件地址的任何IP地址(&lt; @ b.com.taglocal.192.168.0.2.custom.local&gt;),然后我们将我们感兴趣的IP更改为我们真正想要的,然后我们删除首先添加的任何我们不想要的东西。
是的 - 很奇怪 - sendmail不能做简单普通的“if / then”,所以我们必须用这个愚蠢的想法纠缠不清。无论谁写出.cf / .mc的东西都应该获得天才奖章以获得它的灵活性,然后被同样的插手扼杀,因为他们愚蠢地写作并释放它。