2014-02-07 3 views
0

Я просто хочу открыть окно «Новая электронная почта» и заполнить несколькими вложениями, я считаю, что Process.Start будет проще, чем SMTP, потому что мне не нужно проходить мимо мой SMTP-сервер. Мой первоначальный план состоял в том, чтобы использовать Microsoft.Office.Interop.Outlook, но поскольку я запускаю свое приложение в качестве администратора, мне пришлось выставить этот вариант.Заполните электронное письмо с помощью MULTIPLE вложений с помощью Process.Start

Это то, что у меня есть до сих пор, для этого требуется только одно вложение, возможно ли, что я могу передать второй аргумент (fn2) после fn?

static void Main(string[] args) 
{ 
    string programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); 
    var selectedApplicationPath = Directory.GetFiles(programFilesPath, "Outlook.exe", SearchOption.AllDirectories); 
    if (selectedApplicationPath.Length <= 0) return; 

    var outlookProcessPath = selectedApplicationPath[0]; 
    if (string.IsNullOrWhiteSpace(outlookProcessPath)) return; 
    string fn = @"path1"; 
    string fn2 = @"path2"; 
    Process.Start(outlookProcessPath, "/a \"" + fn + "\""); 
} 
+0

* Почему вы не можете использовать Outlook Interop? –

+0

Трудно объяснить; это похоже на то, что когда вы запустили приложение в качестве администратора, Outlook предположил бы, что это уже пользователь. Поэтому внешний вид не позволит вам иметь второго пользователя. – HoKy22

ответ

0

Ответ, к сожалению: Вы не можете. Переключатели командной строки Outlook не поддерживают прикрепление нескольких файлов.

Если вы действительно хотите использовать этот подход для запуска внешнего вида, запишите свои вложения в один файл, а затем присоедините его.

Если вам требуется интерактивность пользователя при отправке электронного письма, я предлагаю пересмотреть подход COM. Я знаю, что вы отбросили это, но я не уверен, что ваша техническая проблема не может быть решена (подсказка: запустите вопрос о переполнении стека).

Если вы делаете не, необходимо взаимодействие с пользователем, обязательно используйте SMTP. Увольнение нового экземпляра outlook для каждого сообщения имеет тенденцию быть довольно хрупким, поскольку один висячий экземпляр может остановить появление всех последующих экземпляров.

+0

Zip это и электронная почта - действительно хорошая идея! Вместо этого я смог реализовать этот подход - http://stackoverflow.com/questions/6386113/using-system-io-packaging-to-generate-a-zip-file – HoKy22

Смежные вопросы