Сори, что долго не отвечал.
Для доступа к почте по протоколам POP3 и SMTP рекомендую
http://www.rom1c.narod.ru/rom_mail.htmlУ меня эти протоколы не живут, поэтому приходится использовать интерфейс MAPI.
В обоих случаях идея такова - получаем доступ к почтовику, загоняем сообщения например в ТЗ, а дальше представляем это в виде удобного интерфейса.
Я не стал заморачиваться с ВК, а решил это на основе стандартной технологии OLE.
Для примера взял код на Бейсике с сайта Микрософта.
Т.к. объектная модель Outlook'а достаточно сложная, предлагаю установить оч. полезную компоненту
http://www.dimastr.com/outspy/Из хотелок не удалось получить доступ к некоторым параметрам письма, как то - адрес отправителя и подобным. Собственно доступ-то получить удается, но система безопастности выкидывает при этом окошко для подтвержления доступа. Вот тут написано об этом подробнее
http://www.mapilab.com/ru/support/articles/vb_outlook_security_1.html. На этом же ресурсе можно скачать ВК, которая обходит эту защиту, но мне не удалось ее прикрутить к 1C. Из -за отсутствия времени забил на это.
Вот, что получилось:
//=========================================
Процедура ЗагрузитьВложенияИзПочты(Конт, ОбъектШифрования = "", НомерСтроки) Экспорт
РасшТЗ = СоздатьОбъект("РасшТаблицаЗначений");
РасшТЗ.НоваяКолонка("Сообщение");
РасшТЗ.НоваяКолонка("Дата" , "Дата" , , , "Дата сооб." , 12);
РасшТЗ.НоваяКолонка("Вложения", "Строка", , , "Вложения" , 40);
РасшТЗ.НоваяКолонка("Тема" , "Строка", , , "Тема сообщ.", 40);
РасшТЗ.ВидимостьКолонки("Сообщение", 0);
ПочтовыйКлиент = CreateObject("Outlook.Application");
Почта = ПочтовыйКлиент.GetNamespace("MAPI");
ПапкаВходящие = Почта.GetDefaultFolder(6);
вспНачДата = СтрЗаменить(Строка(Формат(ТекущаяДата() - 5, "ДДДММГГГ")), ".", "/");
Последние = ПапкаВходящие.Items.Restrict("[ReceivedTime] > '" + вспНачДата + "'");
Попытка
КолвоСообщений = Последние.Count();
Исключение
DoMessageBox("Сообщения, за последние 5 дней, не найдены!");
Возврат;
КонецПопытки;
Состояние("Получение списка сообщений...");
Попытка
текСообщение = Последние.GetFirst();
While 1 >0 Do
If текСообщение.Attachments.Count() = 0 Then
текСообщение = Последние.GetNext();
Продолжить;
EndIf;
СписокВложений = "";
For i = 1 To текСообщение.Attachments.Count() Do
Файл = текСообщение.Attachments.Item(i);
СписокВложений = СписокВложений + СокрЛП(Файл.FileName) + ", ";
EndDo;
РасшТЗ.НоваяСтрока();
РасшТЗ.Сообщение = текСообщение;
РасшТЗ.Дата = текСообщение.ReceivedTime;
РасшТЗ.Тема = текСообщение.Subject;
РасшТЗ.Вложения = Лев(СписокВложений, СтрДлина(СписокВложений) - 2);
текСообщение = Последние.GetNext();
EndDo;
Исключение
КонецПопытки;
If РасшТЗ.КоличествоСтрок() = 0 Then
DoMessageBox("Нет сообщений с вложениями за последние 5 дней!");
Возврат;
EndIf;
РасшТЗ.Сортировать("Дата-", );
РасшТЗ.ОтметитьЗначения();
Попытка
Файл = СоздатьОбъект("ФС");
Флаг = 0;
РасшТЗ.ВыбратьСтроки();
While РасшТЗ.ПолучитьСтроку() >0 Do
If РасшТЗ.Пометка() > 0 Then
Сообщение = РасшТЗ.Сообщение;
For i = 1 To Сообщение.Attachments.Count() Do
вложФайл = Сообщение.Attachments.Item(i);
вложФайл.SaveAsFile("C:\temp\" + вложФайл.FileName);
вспЗагрузитьДокумент(Конт, ОбъектШифрования, НомерСтроки, вложФайл.FileName, "C:\temp\" + вложФайл.FileName, 0);
Файл.УдалитьФайл("C:\temp\" + вложФайл.FileName);
Флаг = 1;
EndDo;
EndIf;
EndDo;
If Флаг = 1 Then
DoMessageBox("Документ(ы) успешно добавлен(ы)!");
EndIf;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
//====================
РасшТаблицаЗначений это самописный класс для отметки значений в ТЗ, как это сделано в СпискеЗначений.