2010-10-21 26 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