2010-10-21 27 views
0

我的環境是的WinSock時出錯,下載郵件消息的MSG文件

服務器計算機:文件分享服務器6

客戶機:Windows XP中,其中的DocuShare客戶端6,文件分享的Outlook客戶端3,MS Outlook 2007和我們C#應用程序已安裝。

我們有一個C#應用程序使用DocuShare API從DocuShare服務器下載郵件消息。

應用程序成功將docushare郵件作爲MSG文件下載。但是,當郵件附件名稱較長(在我的情況下附件文件名是 「新的Tzunami Outlook附件提取器用戶指南20100902.docx」)時,應用程序在下載時拋出Windows套接字錯誤。如果附件文件名稱較短,則會成功下載郵件。

下面是代碼:

private void btnDownloadMails_Click(object sender, EventArgs e) 
{ 
    MailArgument mailArg = new MailArgument(); 
    mailArg.server = textServer.Text; 
    mailArg.user = textUser.Text; 
    mailArg.password = textPwd.Text; 
    DownloadMailAsMsg(mailArg); 
} 

void DownloadMailAsMsg(object s) 
{ 
    MailArgument mailArg = s as MailArgument; 
    long status = 0; 

    DSServerMap.Server dsserver = new DSServerMap.Server(); 

    if (!SelectMappedServer(ref dsserver, mailArg.server)) 
     return;    

    dsserver.DocuShareAddress = mailArg.server; 
    dsserver.UserName = mailArg.user; 
    dsserver.Password = mailArg.password; 
    dsserver.Domain = "DocuShare"; 
    status = dsserver.Logon();       

    if (status == 0) 
    { 
     IItemObj objParentItem; 
     string[] emailHan = { "MailMessage-2919", "MailMessage-2924", "MailMessage-2925", "MailMessage-2926", "MailMessage-2926", "MailMessage-15", "MailMessage-30", "MailMessage-31" }; 
     foreach (string handnum in emailHan) 
     { 
      objParentItem = (IItemObj)dsserver.CreateObject(handnum); 
      DSGATEWAYLib.IGatewayHandler gateway = (DSGATEWAYLib.IGatewayHandler)dsserver.Open();     
      objParentItem.AttachGateway(gateway, true); 
      objParentItem.Name = @"D:\emtest\" + handnum + ".msg";      
      int flag = objParentItem.DSDownload(0); 
     } 
    } 
} 

哪裏卡住位於行:INT標誌= objParentItem.DSDownload(0);同時下載名爲「New Tzunami Outlook附件提取器用戶指南20100902.docx」的附件文件的電子郵件。 爲了檢查,我們將附件文件名稱修剪爲「ANew Tzunami OutAttachmen 01.docx」,但我們仍然得到相同的錯誤。

代碼objParentItem.DSDownload(0)-300返回值,並在同一時間的DocuShare錯誤對話框與彈出以下消息

「Winsock錯誤123」

+0

你能指定錯誤/異常嗎? – kyndigs 2010-10-21 10:21:10

+0

我已經更新了這個問題。請看那裏的例外。謝謝。 – Prakash 2010-10-21 11:54:08

+0

挖掘北斗,在下載電子郵件時,api也嘗試下載它的附件,但DocuShare錯誤對話框窗口顯示了不同的附件文件名,用0x09 ie選項卡替換了最後一個空格字符。 – Prakash 2010-10-21 12:21:23

回答

0

當DsAxess控制檯用於下載同樣的郵件信息,我們得到了相同的WinSock錯誤,所以沒有辦法;)。

我們使用WorldClient郵件應用程序發送電子郵件。我們使用WorldCLient發送了附有「ANew Tzunami OutAttachmen 01.docx」文件名的電子郵件,我們未能下載。爲了測試,我們使用另一個應用程序來發送具有相同附件的電子郵件。這次我們使用MS word來發送具有相同附件的電子郵件,並且我們成功地使用C#應用程序和DsAxess控制檯來下載電子郵件。

如果您對此有任何意見,請與我們分享。

謝謝。 Prakash