![]() |
html Mail mit Bilder (attachment) versenden mit Indy
moin moin
Ich habe diese MailSend Procedure geschrieben:
Delphi-Quellcode:
Ich kann auch mails versenden ... funktoiniert soweit alles
procedure sendNewsLetter(an:Tstringlist; att1,Text:Tstrings;
vonMail,Betreff,Priority,CT,SMTPServer,SMTPUsername,SMTPPass:String; SMTPPort,SmtpAuthType:integer; PopServer,PopUser,PopPass:String; PopPort:integer); var IdMsgSend:TidMessage; SMTP:TidSmtp; POP:TidPop3; i:integer; s:string; begin IdMsgSend:=TidMessage.Create(nil); SMTP:=TidSmtp.Create(nil); POP:=TidPop3.create(nil); with IdMsgSend do begin ContentType :=CT ; Body.Assign(Text); From.Text := vonMail; ReplyTo.EMailAddresses :=vonMail; Subject := Betreff; Priority := Priority ; s:=''; for i:=0 to an.Count-1 do begin s:=s+BccList.EMailAddresses+an.Strings[i]+';' end; BccList.EMailAddresses:=s; ReceiptRecipient.Text:=''; end; if att1.Count>=1 then begin for i:=0 to att1.Count-1 do begin TIdAttachment.Create(IdMsgSend.MessageParts, att1.Strings[i] ); end; end; IdMsgSend.ContentType :=CT ; case SmtpAuthType of 0: SMTP.AuthenticationType := atNone; //Normal 1: SMTP.AuthenticationType := atLogin; //SMTPAuth 2: begin //AfterPop SMTP.AuthenticationType := atNone; POP.Host:=POPServer; POP.Username:=POPUser; POP.Password:=POPPass; POP.Port:=POPPort; POP.Connect(5); POP.Disconnect; end; 3: begin //afterPop+SMTPAuth SMTP.AuthenticationType := atLogin; POP.Host:=POPServer; POP.Username:=POPUser; POP.Password:=POPPass; POP.Port:=POPPort; POP.Connect(5); POP.Disconnect; end; end; SMTP.Username := SMTPUsername; SMTP.Password := SMTPPass; SMTP.Host := SMTPServer; SMTP.Port := SMTPPort; SMTP.Connect; try SMTP.Send(IdMsgSend); finally SMTP.Disconnect; end; IdMsgSend.free; SMTP.free; POP.free; end; Doch ich hab folgendes Problem: Wenn ich mais sende mit dem ContentType := 'text/html' dann kommen die mails auch richtig an also html wird korrekt dargestellt und im Mail header steht auch by content type drin "text/html" nun wenn ich noch ein attachment mit sende wird die Eigenschaft irgendwie zurück gesezt und das mail wird nicht mehr html dargestellt (im Mail header steht nun auch wieder drin: text/plain) an was kann das liegen ? wie kann man das beheben ? Ein weiteres Problem: Ich möchte Auch bilder versenden können über diese Mail Procedure und zwar so wie Outlook dass man die bilder Positionieren kann. Ich hab versucht die bilder in richt text um zukonvertieren und dann die mails als richtext zuversenden. mit dieser Funktion:
Delphi-Quellcode:
Der Richtext den ich normal schreibe kommt an jedoch werden die Bilder (konvertierter Richtext) einfach weggelassen. Ich hab dann noch zusätzlich versucht ein Mail mit Bildern im WordPad zu erstellen und dies als rtf abzuspeichern und dann meiner Mail procedure als textinhalt mit zugeben wieder um mit content rtf dort ist das selbe die bilder werden wie Ignoriert. Weiss jemand wieso ?
function BitmapToRTF(pict: TBitmap): string;
// by D3k var bi, bb, rtf: string; bis, bbs: Cardinal; achar: ShortString; hexpict: string; I: Integer; begin GetDIBSizes(pict.Handle, bis, bbs); SetLength(bi, bis); SetLength(bb, bbs); GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^); rtf := '{\rtf1 {\pict\dibitmap '; SetLength(hexpict, (Length(bb) + Length(bi)) * 2); I := 2; for bis := 1 to Length(bi) do begin achar := Format('%x', [Integer(bi[bis])]); if Length(achar) = 1 then achar := '0' + achar; hexpict[I - 1] := achar[1]; hexpict[I] := achar[2]; Inc(I, 2); end; for bbs := 1 to Length(bb) do begin achar := Format('%x', [Integer(bb[bbs])]); if Length(achar) = 1 then achar := '0' + achar; hexpict[I - 1] := achar[1]; hexpict[I] := achar[2]; Inc(I, 2); end; rtf := rtf + hexpict + ' }}'; Result := rtf; end; Wie kann man am besten realisieren positionierte Bilder zu versenden ? geht das auch mit html ? Ich glaube outlook macht das auch mit html irgendwie muss das doch gehen hat jemand eine idee ? Besten Dank für eure Hilfe Greetz CTV |
Re: html Mail mit Bilder (attachment) versenden mit Indy
Zitat:
Suche mal: ![]() ...:cat:... |
Re: html Mail mit Bilder (attachment) versenden mit Indy
danke viel mals :) ich hab s nu hinbekommen html mails zu versenden mit attachment :)) was ja vorhin ned ging ist ja eigentlich logisch dass man das unterteilen muss danke für deinen hinweis.
Was ich noch nicht rausbekommen hab ist das mit den Bildern, dass man die auf dem Richeidt anordnen kann und sie dann im Mail auch gleich ankommen. Gibt es eine gute Richedit Kompo mit welcher man ganz einfach bilder einfügen kann ? vielleicht kann man dann das ganze auch besser dem Mail über geben Greetz Cyrus |
Re: html Mail mit Bilder (attachment) versenden mit Indy
Hi,
die RichEdit-Komponenten in Jedi und RXLib können das. Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz