2012-10-29 5 views
1

MVVM 프리젠 테이션 패턴으로 WPF 앱을 개발 중입니다. 그리드가 있고 "emailto"하이퍼 링크가 있고 사용자가 모든 데이터를 엑셀로 내보내고 초안 메시지 창이있는 기본 전자 메일 클라이언트를 열려고하는 경우 (전자 메일 클라이언트는 Lotus/Outlook)에 첨부하고 Excel에 첨부 파일로 첨부하십시오. 나는 "Mailto"하이퍼 링크를 정의 할 수 있으며 클릭하면 초안 메시지 전자 메일 창을 열 수 있습니다. 하지만 첨부 파일로 Excel을 보내는 방법을 잘 모르겠습니다. 어떤 도움이라도 대단히 감사합니다.wpf "emailto"- 첨부 파일이 있습니다.

답변

2

를 엑셀 당신이 어떻게 든이 파일의 생성을 의미하지 않는다 파일을 전송함으로써. 권리? 따라서 파일을 첨부하면됩니다.

나는 항상 신뢰할 수 있고 지난 6 년간 실패한 적이없는 것처럼 보이는 Andrew Baker's MAPI wrapper class을 사용합니다. 18Kb의 C# 코드만으로 정확히 필요한 작업을 수행 할 수 있습니다.

var message = new MapiMailMessage(subject, body); 
message.Recipients.Add(mailAddress); 
message.Files.Add(filePath); 
message.ShowDialog(); 
+0

안녕하세요, 감사합니다. 하지만 난 이메일을 보내려면 사용자 정의 UI를 열고 싶어하지 않습니다. 난 단지 미리 구성된 메시지로 기본 메일 클라이언트 인터페이스를 열고 싶다. –

+0

@HariSubramaniam, 소스 코드를 살펴보십시오. 이메일을 보내기 위해 자체/맞춤 UI를 사용하지 않습니다. * ShowDialog * 메소드는 미리 구성된 메시지가있는 기본 전자 메일 클라이언트를 시작합니다. 메소드의 이름을 혼동하지 마십시오. –

0

당신은 당신의 문제를 해결하기 위해 Simple MAPI API을 사용할 수

var mapi = new Mapi(); 
mapi.Logon(IntPtr.Zero); 

foreach (var filePath in files) 
    mapi.Attach(filePath); 

mapi.Send("subject", "body text", true /* show send message dialog to user */); 
mapi.Logoff(); 
+0

안녕하세요, 감사합니다. 하지만 난 이메일을 보내려면 사용자 정의 UI를 열고 싶어하지 않습니다. 난 단지 미리 구성된 메시지로 기본 메일 클라이언트 인터페이스를 열고 싶다. –

+0

그것이 작동하는 방법입니다. 메일 클라이언트는 Windows에 기본 메일 클라이언트로 등록합니다. 'mapi.Send ("my subject", "my body text", true)를 호출하면 윈도우는 메일 클라이언트에게 제목'my subject', 본문'my body text' 및 첨부 파일로 메시지 전송 대화 상자를 열도록 지시합니다. – SHSE

관련 문제