2016-02-26 2 views
2

Я собираюсь разработать плагин Outlook, который отделяет огромные вложения от электронной почты и загружает такие вложения на FTP-сайт.внешний вид огромного управления вложениями

В моей первой версии плагина я выполнил всю работу в событии Application.ItemSend, но когда приложение действительно огромно (более 1 ГБ), это решение неудовлетворено, поскольку пользовательский интерфейс зависает, когда пользователь загружает файл.

Обязательным условием является то, что письмо следует отправлять только после того, как загрузка на сайт ftp завершена. Любые идеи о лучшем способе реализации решения Outlook?

ответ

0

Вы имеете в виду, что пользовательский интерфейс зависает при загрузке файла? Отображение модального диалога, когда загрузка все еще выполняется, и фактическая загрузка в отдельном потоке.

+0

Да, пользовательский интерфейс зависает, когда я загружаю файлы. Было бы неплохо, чтобы почта была перемещена в папку исходящих сообщений, когда пользователь нажимает кнопку отправки, чтобы Outlook был доступен для другой задачи. Это будет такое же поведение обычного почтового элемента. Загрузка вложения должна выполняться в фоновом режиме, и почта должна оставаться в папке исходящих сообщений, пока загрузка не будет завершена. Моя проблема в том, что я не знаю, как управлять таким почтовым ящиком в папке outbox – simone

+0

Когда возникает событие ItemSend, запустите таймер (вам нужно быть вне обработчика события, чтобы иметь возможность сделать несколько вещей). Когда таймер срабатывает, отключите его (чтобы он не срабатывал снова), переместите сообщение в папку «Исходящие», сохраните вложения (вы можете делать это только в основном потоке) и начните загрузку на вторичном потоке. Когда загрузка завершена, удалите вложения, вызовите MailItem.Send (убедитесь, что вы не обрабатываете один и тот же элемент дважды). –

Смежные вопросы