Autor Beitrag
mk3
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Fr 08.08.03 09:32 
Hallo!

Ich will HTML-Text mit Bildern in Email Body verschicken.
Jedes Bild muss aber mit einer Content-ID, was in Header der Email steht referenziert werden. Wie kann ich diese Content-ID rausfinden oder soll ich sie selber im Header setzen, dann wie?
Sollen die Bilder auch als Anhänge hingefügt werden oder nicht?
Ich kann niergendwo die Info zu diesem Thema finden, nur über den einfachen Text als Email.

Danke im voraus für jeden Hinweis!
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Di 12.08.03 19:00 
ändere mal dein Topic !!
Weil; Mapi ist Microsoft/Exchange/Outlook und nicht gerade einfach und hat damit nicht viel zu tun.

Du musst die Bilder in der Message als Attachment mit versenden. Schau dir doch einfach mal eine Mail an, die sowas hat (im Quelltext). Jede gute POP/SMTP Komponente kann sowas heutzutage.
grez
msch
mk3 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 13.08.03 10:11 
Na ja, ich will nähmlich über Microsoft/Exchange verschicken und dabei auch MAPI benutzen. Deshalb frage ich auch danach und nicht nach POP/SMTP Komponenten.

Und wenn ich die Bilder im Attachment verschicke, dann werden sie auch in Attachment angezeigt. Ich will aber, dass die Bilder in HTML-Text angezeigt werden, genau an der Stellen, wo sie sein sollen.

Quelltext von einer Email steht:
...
<DIV><IMG src="cid:0546-0058-0C-08-TJ-1"></DIV>
...

in Header steht:
...
Content-Type: application/octet-stream; name="img1.jpg"
Content-Transfer-Encoding: base64
Content-ID: <0546-0058-0C-08-TJ-1>
...

Meine Frage ist nähmlich, wie ich diese Content-ID rausfinden. Soll ich sie selber setzen oder wie geht's?
Sonst werden die Bilder nicht angezegt.

mfg
mk
lemming
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 470

Mac OS 10.3.1
Delphi 6 Pro, Kylix 3
BeitragVerfasst: Mi 13.08.03 10:30 
oder mach doch gleich <IFRAME><IMG src="cid:0546-0058-0C-08-TJ-1"></IFRAME>

;)
mk3 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 13.08.03 14:00 
Es geht doch sehr einfach.

als HTMLBody schreibt man:
...
<DIV><IMG cid="img.jpg"></DIV>
...
also, Dateinamen ohne Pfad. Und das Bild fügt man als Attachement hinzu.
Dann werden die Bilder im Text richtig angezeigt, aber die werden auch als Attachements dabei, was ich eingentlich nicht will.

Ich wundere mich aber, dass niemand mir helfen konnte!

Mfg
mk
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 13.08.03 18:22 
mk3 hat folgendes geschrieben:

...
Dann werden die Bilder im Text richtig angezeigt, aber die werden auch als Attachements dabei, was ich eingentlich nicht will.
...


woher soll dann der Mailempfänger wissen, wo die Bilder sind, wenn nicht als Attachments ?

Zitat:
Ich wundere mich aber, dass niemand mir helfen konnte!


Tja, vielleicht liegts an der Fragestellung?

grez
msch
mk3 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 13.08.03 22:30 
Wenn ich aus Outlook an mich selbst Email mit HTML-Text schicke, dann bekommen ich diese Email und HTML-Text wird richtig angezeigt, alle Bilder an ihren Stellen. Ich habe diese Bilder NICHT als Anhänge dabei.

Mit MAPI, wie oben beschrieben, werden die Bilder SOWOHL im Text angezeigt ALS AUCH alle einzeln im Anhang. Und das wollte ich nicht. Ich will nur HTML-Text, keine extra Anhänge.

mk
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Do 14.08.03 12:28 
lange rede kurzer Sinn, schau dir mal das Mapi-Protokoll sowie HTML Defininitionen zu Graphiken (<img> Tag) an, oder speicher einfach mal die E-Mail als HTML Datei ab. Die Graphiken sind dann verschwunden (Platzhalter).
Ist leider nicht so offensichtlich, aber Outlook kann ne Menge verbergen, gerade was die Versendung von HTML Mails betrifft.
grez
msch
vsti
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 43

XP Home
D2005
BeitragVerfasst: Mi 01.09.04 14:23 
hi, wen es nach einem jahr noch interessiert, ich hatte das selbe ziel wie mk3 undhabe es erreicht.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
procedure TForm1.Button1.Click(Sender: TObject);
var Att: TIDAttachment;
    Text: TIDText;
begin
  try
    idSMTP.Host   := 'smtp.bla.de';
    idSMTP.UserID := 'bla';
    idSMTP.Password := 'bla';
    idSMTP.Port   := 25;

    idMessage1.Recipients.EMailAddresses:= '123@456.de';
    IdMessage1.Subject:= 'test';

    Text:=TidText.Create(IdMessage1.MessageParts);
    Text.ContentType:= 'text/plain;';
    Text.Body.Text:= 'Dies ist eine HTML-Mail.';


    Text:=TidText.Create(IdMessage1.MessageParts);
    Text.ContentType:= 'text/html;';
    Text.Body:= '<IMG src="cid:c:\logo.gif">';

    if (pos('.jpg',Edit1.Text)=(length(edit1.Text)-3))
      or (pos('.gif',Edit1.Text)=(length(edit1.Text)-3))
      or (pos('.bmp',Edit1.Text)=(length(edit1.Text)-3)) then begin
        Att:=TIDAttachment.Create(IdMessage1.MessageParts,Edit1.Text);
        Att.ContentDisposition := 'inline';  //damit das bild direkt in der email verankert ist
        // Att.ContentDisposition := 'attachment'; //damit das bild im anhang ist
        Att.ExtraHeaders.Values['content-id']:= 'logo.gif'//wichtig, sonnst wird das bild vom HTML-Code nicht erkannt
      end;

    idSMTP.Connect;
    try
      idSMTP.Send(IdMessage1);
      ShowMessage( 'Email gesandt');
    finally
      idSMTP.Disconnect;
    end;
  finally
    IdMessage1.Free;
  end;
end;


hav phun

greez, vsti

_________________
[size=10:8b472be373]Wer anderen eine Grube gräbt hat Gold im Mund.[/size:8b472be373]