解决Process.Start()字符的限制

时间:2016-05-14 14:32:25

标签: c# wpf email process

我正在尝试将多个电子邮件地址传递给我的邮件客户端(尝试过Thunderbird和Windows 10s集成邮件应用程序)。不幸的是,Process.Start()命令似乎有一个限制(~2000个字符)。下面我在Visual Studio中编写的简单测试代码作为WPF应用程序:

        private void Button_Click(object sender, RoutedEventArgs e)
    {
        string mail = "mailto:test@test.com?subject=BlaBla&bcc=";
        for (int i = 0; i < 1000; i++)
        {
            mail = mail + "test@test.com" + i + ",";       
        }
        Process.Start("mailto: "+mail);

    }

它的工作正常,直到第125个地址,而它应该在我的测试中通过1000个地址。 是否有解决方法或完全不同的解决方案来克服我的问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

我用&#34; UseShellExecute = false解决了问题;&#34;来自&#34; ProcessStartInfo&#34;的选项。这将调用createprocess(),它允许命令行中包含32767个字符。我读到这不是最好的做法,但它对我有用。 您必须使用已停用的UseShellExecute提供完整路径,例如:

string mail = Environment.GetEnvironmentVariable("ProgramFiles(x86)") + "\\Mozilla Thunderbird\\thunderbird.exe";