我正在開發一個Visual Studio擴展,它向VS添加一條命令,以便在Outlook中使用附件撰寫郵件。該附件是由擴展程序生成的簡單.csv文件。 因此,當用戶觸發該命令時,Outlook將打開一個窗口,其中包含已經創建的電子郵件並添加了附件。用戶可能只需點擊發送。在運行中壓縮Outlook附件
現在我被要求增加發送zip壓縮日誌的可能性。我想編寫一個附件已經壓縮的消息,但我不希望在發送(或取消)消息後保留任何臨時.zip文件。我怎樣才能做到這一點?
我的代碼編寫消息並打開Outlook窗口:
using Microsoft.Office.Interop.Outlook;
...
private static bool TrySendMethod1(string subject, string toAddr, string body, string logPath)
{
try
{
Application app = new Application();
MailItem mailItem = app.CreateItem(OlItemType.olMailItem);
mailItem.Subject = subject;
mailItem.To = toAddr;
mailItem.Body = body;
if (logPath != null) mailItem.Attachments.Add(logPath);
mailItem.Importance = OlImportance.olImportanceNormal;
mailItem.Display(false);
return true;
}
catch (System.Exception e)
{
return false;
}
}
更新 一旦電子郵件組成,則顯示具有由消息的前景窗口(它有已經設定的附件)。現在,用戶可能只是發送它,取消它或任何。他甚至可能會讓窗戶打開幾個小時(雖然這不常見),然後發送(甚至在VS關閉後)。同樣,我不希望在發送或取消消息後在磁盤上存在任何臨時存檔。
我添加了發送電子郵件的完整方法。沒有更多,但只有在用戶選擇我的擴展添加到它的新Visual Studio命令(工具 - >從本月發送TFS日誌)時才調用此方法。在按鈕處理程序之間有一個額外的方法,它只是爲這裏提供的一個參數設置(設置主題,logPath等...)
如果這是不可能的,那麼我也可以接受這樣的答案。
請添加更多代碼。你真的在哪裏發送郵件?因爲這是您可以刪除壓縮文件的地方。 – flayn
請看我更新的答案。 – flayn