Muszę osadzić obrazy w wiadomościach e-mail i wyświetlić podgląd wiadomości e-mail przed jej wysłaniem w programie Outlook. CDO i Redemption nie są opcją.Osadzanie obrazu w Outlooku za pomocą rozszerzonych funkcji mapi
Próbowałem następujący kod, ale obrazy po prostu pojawiają się jako mały blok.
procedure AddAttachment(FullFileName: String; Attachments: Outlook2000.Attachments; CID: String);
const
PR_ATTACH_CONTENT_ID = $3712001E;
PR_ATTACH_CONTENT_ID_W = $3712001F; // Unicode
PR_ATTACH_MIME_TAG = $370E001E;
PR_ATTACH_ENCODING = $37020102;
var
IAttach: IMAPIProp;
Prop: PSPropValue;
AAttachment: Outlook2000.Attachment;
FileName: String;
PropValue: TSPropValue;
Prop1: TSPropTagArray;
begin
FileName := ExtractFileName(FullFileName);
Prop := nil;
try
AAttachment := Attachments.Add(FullFileName, olByValue, 1, FileName);
IAttach := AAttachment.MAPIOBJECT as IMAPIProp;
if Assigned(IAttach) then
try
PropValue.ulPropTag := PR_ATTACH_MIME_TAG;
PropValue.Value.lpszA := 'image/jpeg';
HrSetOneProp(IAttach, @PropValue);
PropValue.ulPropTag := PR_ATTACH_CONTENT_ID;
PropValue.Value.lpszA := PAnsiChar(AnsiString(CID));
HrSetOneProp(IAttach, @PropValue);
finally
if Assigned(Prop) then MAPIFreeBuffer(Prop);
IAttach := nil;
end;
except
end;
end;
Czy w formacie HTML? Czy używasz adresu URL CID dla osadzonego obrazu? – Ben
@Ben Czy powinien używać formatu HTML? Czy istnieje rozwiązanie z adresem URL CID? jestem pewien, że użyje cokolwiek otrzyma twoja odpowiedź - o ile używasz MAPI i działa, gdy klientem poczty e-mail użytkownika jest Outlook. –
@IanBoyd, Oczekuję, że ** używa ** adresu URL CID * teraz o nich wie * ... – Ben