在MacOs中调用邮件实用程序时,链接中的“&”号出现问题

问题描述 投票:0回答:1

所以我有一些用Python编写的自动化代码,用于填充电子邮件模板字符串,其中一个是指向包含字符&的Splunk查询的链接。填充电子邮件后,我将传入的args创建为一个cmdline来调用子进程库,如下所示:

pipe = subprocess.Popen(cmdline, stdin=inout, stdout=inout,
                                stderr=inout, close_fds=closefds,
                                preexec_fn=setsid, startupinfo=startupinfo)

现在cmdline是包含以下内容的列表:

['open', "mailto:[email protected]&subject=My subject&body=Some 
text with the following problem link: 
https://splunk-link.com:443/app/my_app/@go?dispatch_view=alert&s=%2FservicesNS%2Fnobody%2Fapigateway-prod%2Fsaved%2Fsearches%2FAPI%2520Gateway%2520Credential%2520Security%2520Violation%253A%2520Auth%2520Header%2520on%2520HTTP%2520%2528Non%2520SSL%2529%2520-%2520Daily"]

每次打开默认邮件提供程序时,在这种情况下都是Outlook,在链接的&处都会截取邮件。

我已经尝试将链接用双引号和单引号引起来,用\&\^&进行了转义,但还是没有运气。

有人可以帮我吗?预先谢谢你。

-布莱恩

因此,我有一些用Python编写的自动化代码,用于填充电子邮件模板字符串,其中一个是指向包含字符&的Splunk查询的链接。填充电子邮件后,我将...

python python-3.x macos subprocess escaping
1个回答
0
投票

&是URL中参数之间的分隔符。您需要将其编码为%26

© www.soinside.com 2019 - 2024. All rights reserved.