Произошла ошибка WinSock при загрузке почтового сообщения в виде файла MSG - PullRequest
0 голосов
/ 21 октября 2010

Моя среда:

Сервер: Компьютер DocuShare 6

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

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

Приложение успешно загружает почтовые сообщения docushare в виде файла MSG.Но когда почтовое сообщение имеет вложение с длинным именем (в моем случае это имя файла вложения «Новое руководство пользователя Tzunami 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 flag = objParentItem.DSDownload (0);при загрузке электронной почты с вложенным файлом с именем «Новое руководство пользователя Tzunami Outlook Attachment Extractor 20100902.docx».Для проверки мы обрезали имя файла вложения до «ANew Tzunami OutAttachmen 01.docx», но все равно получили ту же ошибку.

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

«Ошибка Winsock 123»

1 Ответ

0 голосов
/ 22 октября 2010

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

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

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

спасибо. Пракаш

...