2014-11-21 3 views
0

В Outlook 2007. Это только для формата RTF.Attachment.Delete не работает в 2007 году

void Application_ItemSend(object Item, ref bool Cancel) 
     { 
      Outlook.MailItem mail = Item as Outlook.MailItem; 
      mail.Save(); 
      Outlook.Attachments attachments = mail.Attachments as Outlook.Attachments; 

      if (attachments != null) 
      { 
       int iTotalAttachments = attachments.Count; 
       for (int i = iTotalAttachments; i > 0; i--) 
       { 
        Outlook.Attachment attachment = attachments[i] as Outlook.Attachment; 

        // Need to make sure the attachment is not inline 
        if (attachment != null && attachment.Type != Outlook.OlAttachmentType.olOLE) 
        { 
         attachment.Delete(); 
        } 
       } 
      } 
     } 

Однако, если приложить несколько вложений. Обычно для второго приложения - я получаю сообщение «Сбой операции».

Это происходит в 2007 году. Не для 2010 и 2013 годов, а не для прикрепления. Удалить() mail.Attachments.Remove (i);

Однако следующий код работает в 2007 году 2010 и 2013 годах, он не делает надлежащего удаления для вложения (вы можете увидеть значок в теле письма)?

+0

посмотрите на это сообщение, вам придется преобразовать его в C# http://www.outlookcode.com/threads.aspx?forumid=2&messageid=26228 посмотреть 'Sue Mosher 31-Mar-2008 13: 28' response second в нижней части страницы – MethodMan

+0

Сохранение почты до операции - я не разрешил проблему. –

+0

вы прошли через код, чтобы убедиться, что вложение имеет действительную информацию, вы можете сообщить о том, что она отображает на первой и второй итерации ..? – MethodMan

ответ

0

Получаете ли вы исключение только в обработчике событий ItemSend? Я бы предложил использовать другое место для такого кода.