2010-10-21 2 views
0

Мои среды являютсяWinSock ошибка при загрузке сообщения электронной почты, как MSG файл

Сервер Машина: DocuShare сервера 6

клиентского компьютера: Windows XP, где DocuShare клиент 6, DocuShare перспективы клиента 3, MS Outlook 2007 и наши Приложение C# установлено.

У нас есть приложение C# для загрузки почтового сообщения с сервера DocuShare с использованием API DocuShare.

Приложение успешно загружает почтовые сообщения docushare в виде файла MSG. Но когда почтовое сообщение имеет вложение с длинным именем (в моем случае имя файла вложения «Руководство пользователя Extractor Outlook Attachment Extractor 20100902.docx»), приложение выдает ошибку Windows Socket во время загрузки. Если имя файла вложения недостаточно, почтовые сообщения загружаются успешно.

Вот коды:

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); при загрузке электронной почты, в которой есть файл вложения с именем «Новое руководство пользователя Extractor Outlook Tucunity Extractor 20100902.docx». Для проверки мы сократили имя файла вложения до «ANUM TZUNAMY OutAttachmen 01.docx», но мы все равно получили ту же ошибку.

Код objParentItem.DSDownload (0) возвращают значение -300 и в диалоговом окне ошибки DocuShare то же время появляется следующее сообщение с

«Winsock ошибка 123»

+0

Можете ли вы указать ошибку/исключение? – kyndigs

+0

Я обновил вопрос. См. Исключение. Спасибо. – Prakash

+0

После загрузки ковша при загрузке электронной почты api пытается загрузить его вложение, но окна диалога ошибок DocuShare показывают другое имя файла вставки, заменяющее последний символ пробела на 0x09, т.е. вкладку. – Prakash

ответ

0

Когда DsAxess консоль используется для загрузки одно и то же почтовое сообщение, мы получили ту же ошибку WinSock, поэтому ничего нельзя сделать;).

Мы использовали приложение WorldClient для отправки электронной почты. Мы отправили электронное письмо с прикрепленным файлом с именем «ANew Tzunami OutAttachmen 01.docx» с использованием WorldCLient, который нам не удалось загрузить. Для tesing мы использовали другое приложение для отправки электронной почты с тем же вложением. На этот раз мы использовали слово MS для отправки электронной почты с тем же вложением, и нам удалось загрузить электронную почту с помощью приложения C# и консоли DsAxess.

Если у вас есть что-либо об этом, пожалуйста, поделитесь с нами.

спасибо. Prakash

 Смежные вопросы

  • Нет связанных вопросов^_^