2012-10-29 44 views
1

我正在開發MVVM呈現模式中的WPF應用程序。我有一個網格,我試圖有一個「emailto」的超鏈接,當用戶點擊時,我試圖將所有的數據導出到excel,並打開默認的電子郵件客戶端與草稿新的消息窗口(電子郵件客戶端可能是Lotus/Outlook)並將Excel作爲附件添加到郵件中。我可以定義一個「Mailto」超鏈接,當我點擊時,我可以打開草稿消息電子郵件窗口。但我不確定如何發送excel作爲附件。任何幫助是極大的讚賞。wpf「emailto」 - 帶附件

回答

2

通過發送一個Excel文件並不意味着該文件的生成莫名其妙。對?所以你只需要附加一個文件。

我總是使用Andrew Baker's MAPI wrapper class這似乎是非常可靠的,並且從未失敗過去6年。它只有18Kb的C#代碼,它完全符合你的需求。

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

嗨,謝謝。但我不想打開自定義用戶界面來發送電子郵件。我只想用預先編寫的消息打開默認的郵件客戶端界面。 –

+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

嗨,謝謝。但我不想打開自定義用戶界面來發送電子郵件。我只想用預先編寫的消息打開默認的郵件客戶端界面。 –

+0

這就是它的工作原理。郵件客戶端在Windows中註冊爲默認郵件客戶端。當你調用'mapi.Send(「my subject」,「my body text」,true)時,Windows會通知郵件客戶端打開發送郵件對話框,主題爲'我的主題',主體'我的正文'和附加文件。 – SHSE