Outlook中正文含&符号时邮件内容无法正常填充的问题求助
解决方案
直接在Windows CMD中执行的处理方式
&是CMD的命令分隔符,会导致邮件正文在该符号处被截断。只需将正文中的&替换为^&(CMD的转义符),就能让&作为普通字符传递给Outlook:
/c ipm.note /m "?subject=测试主题 &body=正文内容^&包含&符号的部分"
注:如果主题中也包含&,需要做同样的转义处理
代码中构造命令的处理(以C#为例)
不要使用Uri.EscapeDataString(会将&编码为%26并在邮件中直接显示),可以按以下方式处理:
- 先将主题和正文中的
&替换为^&完成CMD转义 - 确保
?subject=...&body=...部分被双引号正确包裹
示例代码片段:
string subject = "测试主题"; string body = "正文内容&包含多个&符号"; string escapedBody = body.Replace("&", "^&"); string escapedSubject = subject.Replace("&", "^&"); string command = $"/c ipm.note /m \"?subject={escapedSubject} &body={escapedBody}\""; // 后续执行该命令即可
替代方案:用PowerShell调用Outlook
PowerShell对特殊字符的处理更简便,只需将邮件参数用单引号包裹,若正文中有单引号则替换为两个单引号:
Start-Process outlook.exe "/c ipm.note /m '?subject=测试主题&body=正文内容&包含&符号'"
内容的提问来源于stack exchange,提问作者KV.Navya Sree
相关产品推荐
相关产品推荐

