Как Создать Плагин Outlook использование Delphi?

Я наконец нашел рабочее решение. Как подчеркнул Люк Баккен, опрос не требуется. Я просто звоню receiveMesssages() только один раз. После этого мой потребитель получает обратные вызовы, когда сообщения публикуются в очереди.

 protected LinkedBlockingQueue<Message> messages = new LinkedBlockingQueue<>();
 public void receiveMessages() {
    try {
        Message message = new Message();
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            long deliveryTag = delivery.getEnvelope().getDeliveryTag();
            String response = new String(delivery.getBody(), "UTF-8");
            if (response != null) {
                message.setId(NUID.nextGlobal());
                message.setPayload(response);
                message.setDeliveryTag(deliveryTag);
                messages.add(message);
                logger.info("Message received: ", message.getPayload());
            };
        channel.basicConsume(queueName, false, deliverCallback, consumerTag -> { });
    } catch (Exception e) {
        logger.error("Exception while getting messages from Rabbit ", e);
    }
}

На консоли кролика теперь отображается только 1 запись тега потребления в связанной очереди.

10
задан JosephStyons 21 October 2008 в 19:09
поделиться

5 ответов

Если Вы просто хотите изучить и понять, как сделать это, просто Google для Delphi дополнение Outlook (я - вполне уверенное "дополнение", должен дать Вам намного более релевантные результаты, чем "плагин" в этом контексте), и необходимо придумать много немного датированные, но все еще официально исправить демонстрационные дополнения, например, дополнение Babelfish от Dmitry Streblechenko (который больше не полезен, потому что веб-сервис, на который это не полагается больше, существует, но все еще показывает, что основы) или демонстрационное дополнение от Paul Qualls (который больше не, к сожалению, доступен от исходного сайта). Существует также почта whitelister дополнение, доступное с полным источником, но я еще не посмотрел на это.

Однако рано или поздно Вы захотите начать использовать доказанную платформу как ADX, особенно если Ваше дополнение будет быть используемым за пределами Вашей компании. Мы разрабатываем условно-бесплатное дополнение в Delphi, и приблизительно 75% кода в дополнении должны просто там оказать поддержку для различных версий Outlook (особенно Outlook XP) и различные установки (прежде всего, опция использовать Word для редактирования сообщения была главным кусающимся животным таблицы для нас).

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

[Дополнение:] Мы действительно начинали с нашей собственной платформой собственной разработки, и все было хорошо с нею до числа пользователей и с ними количество различных конфигураций для поддержки взорванный. Мы переключились на ADX приблизительно год назад и никогда не оглядывались назад. Используя Освобождение была легкая задача с самого начала, хотя - это было или это, или проведите месяцы, изучающие Расширенный MAPI, прежде чем мы даже начали (Вы действительно все еще склонны брать это намного легче, поскольку Вы продвигаетесь, после того как Освобождение вело Вас по первым нескольким препятствиям).

BTW: Другим необходимым инструментом для любого обладающего чувством собственного достоинства разработчика дополнений (независимо от используемого языка программирования) является OutlookSpy. Это действительно позволит Вам видеть (и управлять), что продолжается в Outlook (и в некоторой степени Exchange), как это происходит, и дайте Вам намного лучшее понимание того, что Ваше дополнение должно будет сделать для достижения эффекта, который Вы хотите.

12
ответ дан 3 December 2019 в 14:07
поделиться

Дополнительный Экспресс выглядит хорошим.

12
ответ дан 3 December 2019 в 14:07
поделиться

Я создал дополнение перспективы с помощью Delphi (интегрирующий систему бронирования номера в форму назначения).

Некоторый совет:

  • Купите и используйте дополнительный экспресс. Это сохранит Вас много времени, и это позволяет Вам создавать дополнения COM, которые не требуют никаких сторонних компонентов во время установки. Мы пытались создать наш собственный компонент сначала, и хотя нам удалось поместить кнопки на формы, которые сделали что-то, проведенное количество времени было непропорционально результату.
  • Используйте дополнительную услугу по поддержке экспресса когда в сомнении. Они знают свой материал.
  • COM-интерфейс для перспективы (найденный в delphi/ocx/servers/папке) является Вашим другом. Add-In Express просто обеспечивает (намного) более удобную обертку вокруг этой функциональности.

Вещи избежать:

  • Прямые вызовы MAPI. Это может быть сделано, и на самом деле я должен был обратиться к нему для изменения потоков сообщений в пути, но это - реальный ЛАВАШ для работы с и очень плохо зарегистрированный.
  • Одноразовые формы. Мы потратили впустую много времени, пытаясь заставить одноразовые формы работать. Только используйте опубликованные формы. Можно опубликовать форму к локальной папке из кода, таким образом, на практике это не грандиозное предприятие. Еще лучше должен использовать регионы формы, который является самым устойчивым способом расширить формы.
  • Притворство как COM в Delphi - что-либо как нормальное программирование VCL. Мой совет, если у Вас нет опыта COM, состоит в том, чтобы считать любого и всю документацию, которую можно достать. Некоторые трудно изученные уроки должны были всегда устанавливать переменные на ноль до конца функции, таким образом, объекты могли быть освобождены правильно перспективой, и всегда запрашивать соответствующий интерфейс от объекта вместо того, чтобы пытаться бросить его.
9
ответ дан 3 December 2019 в 14:07
поделиться

Я создал Плагин однажды для использования в Excel (Создающий мои собственные Определяемые пользователем Функции) с Delphi. То, в чем Вы нуждаетесь, является Дополнением, которое реализует интерфейс _IDTExtensibility2.

Теперь я не знаю точные шаги, но поиск _IDTExtensibility2 поможет Вам много.

Проверьте эту статью на хорошее как к. Процедура OnConnection интерфейса _IDTExtensibility2 дает Вам запись в приложение Outlook.

5
ответ дан 3 December 2019 в 14:07
поделиться

К плохо заданию должен быть сделан в Delphi. С.NET и VSTO создание дополнений Outlook является намного менее болезненным по сравнению с плохими былыми временами. Я сделал дополнения Office в COM (который НЕ был забавен вообще), и в предыдущей версии VSTO, но VSTO 3 является очень хорошими новостями для офисного застройщика.

-1
ответ дан 3 December 2019 в 14:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: