AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.01.2013, 18:25   #1  
Eloy is offline
Eloy
Участник
 
10 / 17 (1) ++
Регистрация: 28.07.2010
Всем спасибо, очень полезная тема оказалась. Разобрался с OpenPop.Net, всё супер работает. Единственное пришлось вложения вытаскивать через рефлексию в AX 2009. Вот рабочий пример, может облегчит жинь кому-то:

X++:
    OpenPop.Pop3.Pop3Client             pop3Client;
    OpenPop.Mime.Message                message;
    OpenPop.Mime.Header.MessageHeader   messageHeader;
    OpenPop.Mime.Header.RfcMailAddress  rfcMailAddress;
    OpenPop.Mime.MessagePart            messagePart;

    System.Type                         type, typeE;
    System.Object                       aList, etr;
    System.Reflection.MethodInfo        methodGetEnumerator, methodMoveNext;
    System.Reflection.PropertyInfo      propertyCount, propertyCurrent;
    System.Object[]                     nil;
    System.IO.FileInfo                  fileInfo;
    FileName                            fileName;

    int                                 i, messageCount, attachmentCount;
    str                                 subject, messageBody, email;
    ;

    pop3Client = new OpenPop.Pop3.Pop3Client();

    try
    {
        // Connect to the server
        pop3Client.Connect(POPServerName, POPPort, false);

        // Authenticate ourselves towards the server
        pop3Client.Authenticate(POPUserName, POPPassword);

        // Get the number of messages in the inbox
        messageCount = pop3Client.GetMessageCount();

        info(strFmt("messageCount: %1", messageCount));

        // We want to download all messages
        for (i = 1; i <= messageCount; i++)
        {
            message = pop3Client.GetMessage(i);
            messageHeader = message.get_Headers();
            subject = messageHeader.get_Subject();
            info(strFmt("Subject: %1", subject));
            rfcMailAddress = messageHeader.get_From();
            email = rfcMailAddress.get_Address();
            info(strFmt("Sender e-mail: %1", email));
            messagePart = message.FindFirstPlainTextVersion();
            messageBody = messagePart.GetBodyAsText();
            info(strFmt("Body: %1", messageBody));

            aList = message.FindAllAttachments();

            type = aList.GetType();
            propertyCount = type.GetProperty("Count");

            nil = new System.Object[0]();

            attachmentCount = propertyCount.GetValue(aList, nil);

            info(strFmt("attachmentCount: %1", attachmentCount));

            methodGetEnumerator = type.GetMethod("GetEnumerator");
            etr = methodGetEnumerator.Invoke(aList, nil);

            typeE = etr.GetType();
            methodMoveNext = typeE.GetMethod("MoveNext");

            while(methodMoveNext.Invoke(etr, nil))
            {
                propertyCurrent = typeE.GetProperty("Current");
                messagePart = propertyCurrent.GetValue(etr, nil);
                fileName = messagePart.get_FileName();
                info(fileName);
                fileInfo = new System.IO.FileInfo(strFmt(@"C:\AxEx\%1", fileName));
                messagePart.Save(fileInfo);
            }

            //pop3Client.DeleteMessage(i);
        }
    }
    catch
    {
        error("Произошла ошибка при загрузке почты!");
    }

    pop3Client.Disconnect();
    pop3Client.Dispose();
    pop3Client = null;
За это сообщение автора поблагодарили: FrolovAndy (1), handy-comp (1).
Теги
mail, outlook, pop3, получение, почта

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
кнопка "Выбрать отборочную накладную" при обработке накладной по закупке (DAX2009) Bega DAX: Функционал 0 27.07.2010 14:35
Отправка почты через Outlook... lev DAX: Программирование 9 12.12.2008 13:27
DAX2009. Модуль "Управление качеством". Проблема в архитектуре. slava09 DAX: Функционал 8 09.07.2008 16:20
CRM:отправка почты на Outlook fialka DAX: Функционал 2 17.06.2008 16:09
Право доступа к таблице "Только чтение" gudzon DAX: Программирование 1 24.08.2004 16:14

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:27.