使用命令行时忽略正文中的 C# 发送电子邮件换行符

C# send Email line break in body ignored when using command line

提问人:Hussain ali 提问时间:9/28/2023 最后编辑:Hussain ali 更新时间:9/29/2023 访问量:60

问:

我正在使用 C# MailMessage 库发送电子邮件,但是在尝试从带有换行符的命令行调用此 .exe 时遇到了问题,它忽略了换行符。谁能帮忙找到根本原因?

C# 发送邮件 消息

评论

0赞 JP Alioto 9/28/2023
也许在命令行调用中转义特殊字符?(\\t\\r\\n 例如)
0赞 Hussain ali 9/28/2023
\\t\\r\\n 不起作用

答:

2赞 devklick 9/28/2023 #1

答案取决于您使用的终端。例如,使用 bash 时,您将使用单引号指定字符串,例如,前面有 :$

static void Main(string[] args)
{
    foreach (var arg in args)
    {
        Console.WriteLine(arg);   
    }
}
> SomeApp.exe $'One\r\n\r\nTwo\r\n\r\n'
One

Two

不幸的是,我不确定其他终端/操作系统,也没有能力测试它们。

评论

0赞 Hussain ali 9/28/2023
我正在使用 Windows 命令提示符
2赞 devklick 9/28/2023
查看 ss64.com/nt/syntax-esc.html 了解可能的解决方案。也许逃生角色就是你需要的?^
0赞 Hussain ali 9/28/2023
尝试了各种方法,但仍然不起作用。
0赞 Hussain ali 9/28/2023
您将我的命令行命令转换为适用于 Windows cmd 的命令会更容易吗?
0赞 devklick 9/28/2023
问题是,虽然我可以搜索解决方案,但我无法测试它们,因为我没有 Windows 机器。在此页面中,您可以尝试使用 PowerShell 并使用 ,或者使用 CMD 可以尝试多个 echo 语句(也在同一页面上)`n