有没有一种方法可以在 url 中传递未解释的字符串?

Is there a way that i can pass a string uninterpreted in a url?

我有一个 zabbix 服务器,只要有问题就会给我发邮件。[​​=14=]

它使用这样的模板来生成邮件

Issue: {TRIGGER.ISSUE}
Description: "Node: {TRIGGER.NODE}, {TRIGGER.DESCRIPTION}"

邮件看起来像:

Issue: "memory usage"
Description: "Node: abc.def.com, high memory usage (>90%)"

我需要将此信息传递到网络服务器,之后将采取适当的措施。我的想法是把 该模板中的 url 类似这样的东西

http://localhost:4567?issue={TRIGGER.ISSUE}&nodename={TRIGGER.NODE}&description={TRIGGER.DESCRIPTION}

但这有时会生成无法正确编码到 URI 中的字符串,我经常 运行 在浏览器中遇到 Bad URI 问题。

有没有一种方法可以传递字符串,使其作为原始字符串通过而不被浏览器解释?

{TRIGGER.DESCRIPTION}{TRIGGER.NODE} 宏中的某些字符(白色 space、&、...)是您的问题。不幸的是,Zabbix 没有在模板中提供任何 urlencode 函数。幸运的是,您可以编写自己的警报脚本来解决您的问题。只需选择您最喜欢的支持 urlencode 函数(或编写您自己的语言)的语言,并对您在URL。您的脚本还必须能够发送电子邮件。

文档: