2016-05-14 96 views
0

我试图将多个电子邮件地址传递给我的邮件客户端(尝试过的Thunderbird和Windows 10s集成的邮件应用程序)。不幸的是,Process.Start()命令似乎有一个限制(〜2000个字符)。我的继承人简单testcode写在Visual Studio中的WPF应用程序:解决Process.Start()字符上的限制

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

    } 

其工作正常,直到125 ADRESS而应该通过1000不会忽略在我的测试。 有没有解决方法或完全不同的解决方案来克服我的问题? 谢谢!

+0

你就不能做到每1000个邮件一个新的进程?这....或者你可以使用交换发送电子邮件。 – Tdorno

+0

这将打开一个新的mailclient窗口(=写一封新邮件),而我希望所有收件人都去一个电子邮件。 – RambaZamba

+0

将电子邮件写入文件并将文件名传递给您的应用程序 – Eser

回答

0

我解决了“UseShellExecute = false;”的问题“ProcessStartInfo”选项。这会调用createprocess(),它允许在命令行中输入32767个字符。我读过这不是最好的做法,但它适用于我。 你必须给的完整路径与停用UseShellExecute,例如:

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