2016-05-14 33 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";