2016-05-14 8 views
0

メールクライアント(ThunderbirdとWindows 10の統合メールアプリケーションを試しました)に複数の電子メールアドレスを渡そうとしています。残念ながら、Process.Start()コマンド(〜2000文字)には限界があるようです。相続人は私の簡単なtestcodeは、WPFアプリケーションとしてVisual Studioで書かれた:それは私のテストで1000人の住所がを渡す必要がありながら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); 

    } 

ITSは125住所まで細かい作業します。 問題を解決するための回避策または完全に異なる解決策がありますか? ありがとう!

+0

は、あなただけの1000のメールメッセージごとに新しいプロセスを行うことはできませんか?それは....あるいはあなたは電子メールを送るために交換機を使うことができます。 – Tdorno

+0

これは、新しいメールクライアントウィンドウを開く(新しいメールを書き込む)一方、すべての受信者に1つの電子メールを送信するようにします。 – RambaZamba

+0

電子メールをファイルに書き込んで、ファイル名をアプリケーションに渡します。 – Eser

答えて

0

私はこの問題を "UseShellExecute = false;"で解決しました。 「ProcessStartInfo」からのオプション。これにより、createprocess()が呼び出され、コマンドラインで32767文字が許可されます。私はそのことをベストプラクティスではなく、それは私のために動作します。 次の例のように、非アクティブあるUseShellExecuteとの完全なパスを与えることがあります。

string mail = Environment.GetEnvironmentVariable("ProgramFiles(x86)") + "\\Mozilla Thunderbird\\thunderbird.exe"; 
関連する問題