2014-02-07 4 views
0

Outlook "새 전자 메일"창을 열고 여러 첨부 파일로 채우고 싶습니다. Process.Start는 SMTP보다 간단 할 것입니다. 전달할 필요가 없기 때문입니다. 내 SMTP 서버. 내 원래 계획은 Microsoft.Office.Interop.Outlook을 사용하는 것이었지만 관리자로서 내 응용 프로그램을 실행하고 있으므로이 옵션을 제외해야했습니다.Process.Start를 사용하여 여러 첨부 파일이있는 전자 메일 채우기

이것은 내가 지금까지 가지고있는 것입니다. 단 하나의 첨부 파일 만 필요합니다. fn 다음에 두 번째 인수 (fn2)를 전달할 수 있습니까? 당신은 수 없습니다 :

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은 이미 사용자라고 가정합니다. 따라서 Outlook에서는 두 번째 사용자를 가질 수 없습니다. – HoKy22

답변

0

대답은 불행히도이다. Outlook 명령 줄 스위치는 여러 파일 첨부를 지원하지 않습니다.

Outlook을 시작하는 데이 방법을 사용하려면 첨부 파일을 단일 파일로 압축 한 다음 첨부하십시오.

이메일을 보낼 때 사용자 대화 형 기능이 필요한 경우 COM 접근 방식을 다시 방문하는 것이 좋습니다. 나는 당신이 그것을 버렸음을 알고 있지만 기술적 인 문제를 해결할 수 없다고 확신하지는 않습니다. (힌트 : 스택 오버 플로우 문제를 시작하십시오.)

이 아닌 경우에는 사용자 상호 작용이 필요하므로 꼭 SMTP를 사용하십시오. 하나의 정지 인스턴스가 모든 후속 인스턴스가 나타나지 않게 할 수 있으므로 각 메시지에 대해 새로운 Outlook 인스턴스를 실행하는 것은 매우 취약합니다.

+0

우편 번호와 이메일은 정말 좋은 생각입니다! 대신이 접근법을 구현할 수있었습니다. http://stackoverflow.com/questions/6386113/using-system-io-packaging-to-generate-a-zip-file – HoKy22

관련 문제