Как предоставить вложенные файлы электронной почты cid во встроенный браузер - PullRequest
0 голосов
/ 18 декабря 2009

Я использую встроенный веб-браузер от Bsalsa для написания почтового клиента на Delphi

У меня проблема с вложенными в cid вложениями, такими как:

<IMG src="cid:5D4219C71EAE43B1864AE9CB27C224A8@somehost">

Я храню вложения в базе данных, но не могу понять, как предоставить их браузеру. Кажется, может потребоваться реализовать пользовательское прозвище, но документации недостаточно.

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 18 декабря 2009

Я реализовал это с помощью обработчика «pluggable protocol», и это проще, чем выглядит. Начните здесь: http://msdn.microsoft.com/en-us/library/aa767916(VS.85).aspx и здесь: http://www.bsalsa.com/protocols.html

Извините, я не могу поделиться кодом, который я написал, но он написан для компании, в которой я работаю, и у меня есть ограничения по этому поводу. В основном вам нужен com-объект, который реализует надлежащий интерфейс для получения данных и позволяет элементу управления веб-браузера читать их.

Это ИМХО правильный способ сделать это - изменение почты и хранение временных данных может привести к проблемам в долгосрочной перспективе.

0 голосов
/ 18 декабря 2009

Самое простое решение - извлечь ваши «вложения» в соответствии с запросом во временную папку, а затем изменить ссылку в источнике, чтобы они указывали на эти временные файлы перед их отображением. В прошлом я использовал diHTMLParser для этого с большим успехом.

Если я правильно помню, сообщение содержит эти MIME-вложения вместе с необязательным именем файла, которое не всегда существует, но будет иметь MIME-тип, поэтому вам может потребоваться таблица перевода, чтобы получить расширение файла по умолчанию для вложения. , Кроме того, следите за файлами, которые вы помещаете в вашу временную директорию, и очищайте после закрытия окна сообщений. Если вы разрешаете открывать несколько сообщений одновременно, разрешать конфликты имен и создавать уникальные файлы ... подписи обычно имеют одно и то же имя, но принадлежат разным людям ... это может сбить с толку, если ваше сообщение от Джона подписано Мэри. :)

...