Indy IdMessageBuilder вложения из памяти - PullRequest
0 голосов
/ 11 октября 2019

Есть ли способ добавить связанное вложение из памяти вместо файла, сохраненного на диске с помощью Indy's MessageBuilder?

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

Я могу сделать это с помощью IdMessage, но MessageBuilder просто все упрощает.

Я использую Delphi XE7 и Indy 10.

1 Ответ

0 голосов
/ 11 октября 2019

TIdMessageBuilderAttachment имеет открытое свойство Data: TStream, а TIdMessageBuilderAttachments имеет перегруженный метод Add() с параметром AData: TStream.

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

Таким образом, вы можете получить TStream для своих данных BLOB-объектов, таких как TDataSet.CreateBlobStream(), и создать вложение электронной почты изчто.

...