Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 получение вложений с почты через outlook  [new]
gulyaev.s
Member

Откуда:
Сообщений: 388
файлы сохраняются в директории но не читаются, читаются исключительно .rar и то не все. некоторые повреждены. в чем может быть трабла?

нужно что бы прога сканировала папку входящ и сохраняла все вложения.

юзаю сл. код:
      Dim OL_App As Outlook.Application
        Dim OL_NameSpace As Outlook.NameSpace
        Dim OL_FolderMail As Outlook.MAPIFolder
        Dim OL_ItemMail As Outlook.MailItem
        Dim OL_Attachment As Outlook.Attachment
        ' получаем объект Outlook
        OL_App = CreateObject("Outlook.Application")
        'получаем Namespace
        OL_NameSpace = OL_App.GetNamespace("MAPI")
        ' получаем ссылку на папку Входящие
        OL_FolderMail = OL_NameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
        ' перебираем все письма в папке
        '  Try


        'For Each OL_ItemMail In OL_FolderMail.Items
        For q As Integer = 0 To OL_FolderMail.Items.Count - 1


            With OL_FolderMail.Items.Item(q + 1)
                'выводим тему, время получения, имя и адрес отправителя и текст письма
                ' Debug.Print.BodyFormat()
                Debug.Print("Tema: " & .Subject)
                ' Debug.Print("Получено: " & .ReceivedTime)
                ' Debug.Print("Имя и адрес отправителя: " & .SenderName & " (" & .SenderEmailAddress & ")")
                Debug.Print("Текст письма: " & .Body)
                'если есть вложения выводим название вложенного файла
                If .Attachments.Count > 0 Then
                    Debug.Print("Вложения: ")
                    For Each OL_Attachment In .Attachments
                        Debug.Print(OL_Attachment.FileName)
                        .SaveAs("C:\Temp\" & OL_Attachment.FileName)


                    Next
                End If
            End With
            Debug.Print("_______________________________________________")
        Next
13 ноя 10, 13:00    [9772979]     Ответить | Цитировать Сообщить модератору
 Re: получение вложений с почты через outlook  [new]
pyroman69
Member

Откуда: Москва
Сообщений: 2025
            Outlook.Application oApp = new Outlook.ApplicationClass();
            Outlook.NameSpace oNSpace = oApp.GetNamespace("MAPI");
            Outlook.MAPIFolder oFolder = oNSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
            foreach (Outlook.MailItem item in oFolder.Items)
            {
                foreach (Outlook.Attachment attach in item.Attachments)
                    attach.SaveAsFile(@"FILE_PATH\" + attach.DisplayName);
            }
код только попробовал. Все работает. Учтите, что порядок в коллекциях начинается не с 0, с 1.
13 ноя 10, 15:42    [9774124]     Ответить | Цитировать Сообщить модератору
 Re: получение вложений с почты через outlook  [new]
gulyaev.s
Member

Откуда:
Сообщений: 388
pyroman69,

спасибо.
13 ноя 10, 18:06    [9774845]     Ответить | Цитировать Сообщить модератору
 Re: получение вложений с почты через outlook  [new]
gulyaev.s
Member

Откуда:
Сообщений: 388
pyroman69,

а есть возможность по расширению их распределять в разные папки ?
например если xml то в папку xml и т д?
или тока после того как сохранить опять их пересохранять?
16 ноя 10, 12:07    [9786439]     Ответить | Цитировать Сообщить модератору
 Re: получение вложений с почты через outlook  [new]
ornitopter
Member

Откуда:
Сообщений: 38
можно, конечно :)
что мешает получить расширение файла вложения и по условию сохранить его в требуемую папку?
19 ноя 10, 01:07    [9805420]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить