我正在編寫一個需要使用MAPI發送電子郵件的c#.net應用程序。我正在使用以下庫來實現此目的:http://www.codeproject.com/KB/IP/SendFileToNET.aspx 以下是我如何使用它的示例。windows live mail mapi支持
MAPI mapi = new MAPI();
mapi.AddRecipientTo("[email protected]");
int returncode = mapi.SendMailPopup("subject", "message");
if(returncode==0)
{
MessageBox.Show("User sent message");
}
else if (returncode==1)
{
MessageBox.Show("User abort");
}
這段代碼打開上默認的郵件程序中的新的消息對話框,並應顯示如果用戶決定發送或中止發送電子郵件。
當使用Outlook意味着它彈出一個新的電子郵件對話框並返回正確的錯誤代碼,例如用戶決定不通過關閉消息對話框發送消息時,此代碼工作正常。
問題是,當使用Windows郵件這不能正常工作。發送郵件對話框正確打開,應用程序暫停其在mapi.SendMailPopup上的執行,直到郵件對話框關閉。然而,無論用戶做什麼,mapi.SendMailPopup總是返回零。如果用戶例如決定關閉消息對話框而不發送消息,則當正確的響應爲1(用戶中止)時,mapi.SendMailPopup返回0。
我的問題是應該的Windows Live Mail都需要這種MAPI的支持,如果沒有誰能告訴我一些其他免費的Windows郵件客戶端,將提供所需的MAPI的支持
微軟正在努力擺脫MAPI。這將是一種方法... – 2010-08-13 16:02:09
有什麼選擇?我需要使用外部郵件程序從我的應用程序發送電子郵件。 – Jargo 2010-08-13 17:18:37
如果您想通過那裏管理郵件並利用它們在已發送郵件中,使用簽名等或SMTP,則另一種方法是Outlook對象模型。 – 2016-02-08 11:47:55